개인공부/도커공부

도커 다중 컨테이너 구성

소소한필통 2025. 3. 10. 00:07

다중 컨테이너 애플리케이션 구축

세개의 애플리케이션 구성하기

  • docker를 사용하고 react로 도커라이징하여 브라우저로 볼경우에는 docekr에서 컨테이너명에 대한 IP변환을 못해주므로 localhost로 port로 연결을 해줘야한다.
  • 보통 http는 80이고 https443이니 backend 인바운드포트와 아웃바운드포트 설정을 해주면 browser에서도 연결이 가능함.

DB 종속성 유지하기

  • mongodb를 따로 볼륨설정을 하지 않을 경우에는 mongodb에있는 데이터들이 컨테이너가 내려갔다 올라갈때마다 데이터가 사라짐
  • mongodb의 공식 홈페이지에 보면 /data/db에 실제 데이터베이스 데이터가 쌓이는 것을 알수있음
  • mongodb의 데이터를 저장할 물리공간(볼륨)과 /data/db를 연결해야함

backend 종속성 유지 및 소스 실시간 변경

  1. 볼륨 바인딩하기

    • -v 내컴퓨터 물리경로:/app -v logs:/app/logs

    • 위 와같이하게되면 내물리 경로에 있는 파일 및 폴더가 컨테이너 내부경로로 실시간으로 copy overwrite됨

    • 하지만 logs:/app/logs라고 더 구체적인 경로를 Named Volume으로 컨테이너에 명시했기때문에 /app/logs에는 동일 폴더에 의해 덮여쓰여지지 않음

    • 또한 npm install되는 경로를 익명의 볼륨으로 명시되게 하므로써 바인딩 볼륨보다 우선권을 가지게 하므로써 overwrite할수 없게 만듬

  2. dependency넣기

    • nodemon을 사용하면 npm app.js되신 변경될때마다 실시간으로 백엔드 컨테이너가 업데이트됨
  3. dockerfile ENV추가

    • ENV MONGODB_USERNAME=root, ENV MONGODB_PASSWORD=secret 추가후에는
    • docker build하고 실제 js code에 ${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD} 넣어주게되면 됨
  4. .dockerignore파일 생성 및 설정하기

    • 해당 경로에 파일 및 폴더를 명시하게되면 copy가 안되게됨
    • copy되면 안되는 파일들 넣어주기

Frontend 종족성 유지 및 실시간 변경

  • backend 방식과 동일

'개인공부 > 도커공부' 카테고리의 다른 글

Docker-Compose  (0) 2025.03.10
도커 네트워크 공부  (0) 2025.03.10