콘텐츠로 건너뛰기

7-1. 도커 네트워크 설정 및 프론트엔드 추가

  • 기준

지금까지 따라오셨다면 아래 3가지의 도커 컨테이너가 있을 것입니다.

CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS        PORTS                                         NAMESd50c7fa7f08e   my-project-backend   "uvicorn app.main:ap..."   25 hours ago   Up 25 hours   0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp   backend-api1674d640dae2   postgres:15          "docker-entrypoint.s..."   26 hours ago   Up 26 hours   0.0.0.0:5432->5432/tcp, [::]:5432->5432/tcp   postgres-markets48d5870f550f   frontend-dashboard   "docker-entrypoint.s..."   47 hours ago   Up 47 hours   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp   my-dashboard

여기에 첫번째로 내부 네트워크를 사용하는지 알아보아야 합니다. 5432:5432는 노출된 인터넷 포트 번호로 익명의 누구도 컨테이너 내부에 접근할수 있게 되어 있습니다. 이러한 이유로 보안 강화를 위해 외부 접근 포트로 디비를 철저하게 격리하고 내부 네트워크에서만 사용하도록 설정해야 됩니다.

또한 frontend-dashboard는 “47 hours ago”라고 되어 있습니다. 또한 docker-compose.yml에 프론트엔드 설정이 없습니다. 현재 나타나는 프론트엔드는 처음 보기에서 만든 컨테이너가 만들어져 실행되고 있는것입니다.

구 프론트엔드는 삭제하고 새로운 프론트엔드를 동일네트워크와 설정으로 포함합니다.

🤖 실전! 도커 설정 수정 및 추가(2-1)

🧠 이번 실습은 필수 도커 컨테이너를 하나의 내부 네트워크로 묶고 외부공격으로 부터 방어할 수 있게 설정하는것입니다.

✨ 사용자의 의도(Vibe)

“도커 postgres 컨테이너가 내부 네트워크를 사용하는지 확인하고 외부 포트를 격리해줘”

💻 AI가 생성한 코드 (Syntax)

docker-compose.yml

version: '3.8'… 생략networks:  internal-network:    driver: bridgevolumes:  postgres_data:
  1. 터미널에 “docker compose up -d –build “ 명령하거나 채팅창에 “빌드해줘”
~/my-project$ docker compose up -d --build[+] up 4/4 ✔ Image my-project-backend            Built                                                                                            3.9s ✔ Network my-project_internal-network Created                                                                                          0.2s ✔ Container postgres-markets          Recreated                                                                                        1.8s ✔ Container backend-api               Recreated
  1. frontend-dashboard 컨테이너는 아마 처음 맛보기로 만들었을때 만들어진 컨테이너로 현재 yml에 포함되지 않습니다. 삭제하고 프론트엔드를 추가합니다.

✨ 사용자의 의도(Vibe)

“도커 컨테이너에 프론트엔드를 추가하고 사용하지 않는 컨테이너는 삭제하고 리빌드 해줘”

💻 AI가 생성한 코드 (Syntax)

frontend:    build:      context: ./frontend    container_name: my-dashboard    ports:      - "3000:3000"    depends_on:      - backend    networks:      - internal-network    restart: unless-stopped
  1. 터미널에 “docker ps”명령이나 “도커 프로세스를 보여줘” 하면
CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS              PORTS                                         NAMES58ac838cd1d5   my-project-frontend   "docker-entrypoint.s..."   About a minute ago   Up About a minute   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp   my-dashboard14f114437ba1   my-project-backend    "uvicorn app.main:ap..."   About a minute ago   Up About a minute   0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp   backend-api866de18924dc   postgres:15           "docker-entrypoint.s..."   11 minutes ago       Up 11 minutes       127.0.0.1:5432->5432/tcp                      postgres-markets
  1. 새롭게 프론트엔드( my-project-frontend)가 만들어 졌습니다.

  2. 이전과 다른점은 rpm run dev를 할 필요없이 http://localhost:3000/에 바로 접속됩니다. 왜냐하면 컨테이너 설정에 3000번 포트를 사용하도록 설정되어 있기 때문입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다