Docker Compose

강민성·2023년 8월 3일
0

도커 이미지를 도커 허브에 올리기

도커 이미지를 빌드한 후

docker image tag 이미지명
docker push (옵션) 사용자명/도커허브의레포지토리명:태그명

# 로그인하지 않은 경우 먼저 로그인해야 함
docker login

도커 네트워크

도커 네트워크

# 네트워크 보기
docker network ls

# 네트워크 보기(자세히)
docker network inspect 네트워크명(bridge or host or overlay)
  • bridge: 동일한 도커 호스트를 가진 컨테이너들끼리 서로 통신할 때 사용
  • host: 도커 호스트의 네트워크를 직접 사용
  • overlay: 서로 다른 도커 호스트를 가진 컨테이너들끼리 통신할 때 사용

Docker Compose란?

Docker Compose
도커 컨테이너를 일괄적으로 정의하고 제어하는 도구
설정 파일(.yml)을 도커 CLI로 번역하는 역할
서버에 필요한 인프라, 환경(DB 등)을 하나하나 다운받지 않고 .yml로컬 파일 하나를 통해 정의해서 다운로드받을 수 있음

파일 구성

version

services

실행하려는 컨테이너들을 정의하는 역할
이름, 이미지, 포트 매핑, 환경 변수, 볼륨 등을 포함 해당 정보를 가지고 컨테이너를 생성하고 관리

  • image: 컨테이너를 생성할 때 쓰일 이미지 지정
  • build: 정의된 도커파일에서 이미지를 빌드해 서비스의 컨테이너를 생성하도록 설정
  • environment: 환경 변수 설정, docker run 명령어의 --env, -e 옵션과 동일
  • command: 컨테이너가 실행될 때 수행할 명령어, docker run 명령어의 마지막에 붙는 커맨드와 동일
  • depends_on: 컨테이너 간의 의존성 주입, 명시된 컨테이너가 먼저 생성되고 실행
  • ports: 개방할 포트 지정, docker run 명령어의 -p와 동일
  • expose: 링크로 연계된 컨테이너에게만 공개할 포트 설정
  • volumes: 컨테이너에 볼룸을 마운트함
  • restart: 컨테이너가 종료될 때 재시작 정책
    no: 재시작 되지 않음
    always: 외부에 영향에 의해 종료 되었을 때 항상 재시작 (수동으로 끄기 전까지)
    on-failure: 오류가 있을 시에 재시작

network

volume

config

secret

cf.) docker-compose vs docker compose

docker-compose 명령어가 docker compose로 흡수되었음 -> 지금은 사실상 같음
이전에는 Docker에서는 docker-compose 명령어가 별도로 설치되어야 했지만, Docker 1.13 이후로는 docker-compose 명령어가 Docker CLI에 통합됨

명령어

docker compose up (옵션) 서비스명
profile
Back-end Junior Developer

0개의 댓글