반응형
1. links vs depends_on:
links와 depends_on 둘 다 dependency와 container의 생성순서를 정해준다.
하지만 links는 위의 기능과 link된 container의 이름을 내부코드에서 사용하여 접근할 수 있다.
예시:
web:
  image: example/my_web_app:latest
  links:
    - db
    - cache

db:
  image: postgres:latest

cache:
  image: redis:latest
위의 예시에서 links를 사용한다면 web 내부에서 db:5432 로 접근할 수 있지만 depends_on을 사용한다면 접근할 수 없다.

https://stackoverflow.com/questions/35832095/difference-between-links-and-depends-on-in-docker-compose-yml

또, links와 depends_on은 생성순서는 지정해주지만, 먼저 시작된 컨테이너가 실제로 '사용가능'한 상태인지는 확인하지 않는다고한다. 예를 들자면 데이터베이스 컨테이너를 먼저 시작은 하지만 이 데이터베이스 컨테이너가 현재 연결가능하지 않을수도 있다는 것이다.

2. Volumes:
Volume의 역할인 로컬에 있는 파일을 도커 컨테이너로 마운트하는 역할을 한다. 크게 2가지로 나눌 수 있다.
    - 그냥 마운트: 그냥 그대로 파일/디렉토리를 복사하여 넣는 것이다.
       (예: temp_volume: /app/static/ <- 로컬의 /app/static/을 마운트하고 temp_volume으로 명명)
    - 연결: 데이터베이스가 실행중인 컨테이너를 종료와 함께 삭제하면, 컨테이너가 실행된 시간동안 저장된 데이터가 모두 날아가게 된다. 이를 방지하기 위해 로컬의 폴더와 연결하면 컨테이너의 정보가 날아가더라도 남아있게 된다.
       (예: ./docker/data:/var/lib/mysql/data <- 컨테이너의 /var/lib/mysql/data를 로컬의 ./docker/data와 연결)










반응형
블로그 이미지

개발자_무형

,