지금까지 따라오셨다면 아래 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:
- 터미널에 “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
- 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
- 터미널에 “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
-
새롭게 프론트엔드( my-project-frontend)가 만들어 졌습니다.
-
이전과 다른점은 rpm run dev를 할 필요없이 http://localhost:3000/에 바로 접속됩니다. 왜냐하면 컨테이너 설정에 3000번 포트를 사용하도록 설정되어 있기 때문입니다.