티스토리 뷰
1. 도커 컴포즈란?
여러개의 컨테이너 옵션과 환경 설정 파일을 읽어 컨테이너를 순차적으로 생성해주는 프로그램.
컨테이너 수가 2개 이상이면 컴포즈로 세팅을 하는게 좋다. 하나의 인스턴스에 보통 portainer와 nginx, 그리고 server까지 3개 정도 기본적으로 세팅을 한다고 생각하면 compose는 거의 필수다.
2.도커 컴포즈 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -version
3.도커 컴포즈 사용법
docker-compose up -d -f ./dockerFile
yml
- 도커 컴포즈는 기본적으로 현재 디렉토리나 상위 디렉토리에서 docker-compose.yml을 자동으로 찾아서 컨테이너를 생성한다. -f 옵션은 yml의 파일위치와 이름을 지정할 수 있다. -p 옵션과 함께 사용된다.(프로젝트 이름 지정옵션)
- 4가지로 이루어진다. 버전 정의 , 서비스 정의, 볼륨 정의, 네트워크 정의
- yml 파일은 스페이스 2개로 들여쓰기 한다.
버전 정의
- version은 도커 컴포즈의 버전을 정의하는 곳이다. 요즘 최신 버전들은 '3.0'을 쓴다.
서비스 정의
services:
my_jenkins:
image:
links:
environment:
ports:
command:
depends_on:
my_next_server:
build: ./
my_nginx_server:
build: ./nginx
ports:
- 80:80
image는 저장소/이미지명 식으로 run과 똑같이 구성한다.
links는 run의 link와 같다.
environment는 run의 -e 옵션과 동일하다.
ports는 run의 -p옵션과 동일하다.
command는 run의 마지막에 붙는 커맨드와 같다. run처럼 배열로도 사용 가능하다.
depends_on은 특정 컨테이너에 대한 의존성을 나타내며, 컨테이너 생성 순서를 정의할 수 있다.
links도 실행 순서를 정의해주지만, depends_on은 서비스 명만으로 기술 할 수있다.
--no-deps web 옵션으로 의존성을 컴포즈 실행당시에 제외시킬 수 있다.
build: 항목이 정의된 도커파일의 디렉토리를 명시한다.
context: 도커 컴포즈 명령을 실행할 디렉토리를 지정한다.
dockerfile: 여러 도커파일중 어떤 도커파일을 실행할지 지정한다.
args: 환경변수를 정의한다.
**yml끼리 상속받아서 사용할 수도 있다.
볼륨 정의
네트워크 정의
+스웜모드와 함께 사용가능,
'DevOps > Docker 팔아요' 카테고리의 다른 글
[Note_시도쿠] 2장 도커 엔진 (0) | 2021.12.28 |
---|---|
[Note_시도쿠] 1장 도커란? (0) | 2021.12.28 |