도커:compose: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
(새 문서: == 개요 == 여러 컨테이너를 한번에 쌓아올려 이들을 한번에 관리할 때 == 기초사용 == {| class="wikitable" !의도 !설명 !방법 |- |컨테이너 실행 |...) |
(→개요) |
||
1번째 줄: | 1번째 줄: | ||
== 개요 == | ==개요== | ||
여러 컨테이너를 한번에 쌓아올려 이들을 한번에 관리할 때 | 여러 컨테이너를 한번에 쌓아올려 이들을 한번에 관리할 때. | ||
== 기초사용 == | 의존관계에 있는 컨테이너들을 관리할 때 사용한다. | ||
==기초사용== | |||
기본적으로 해당 파일이 있는 곳에서 실행한다. 다른 곳에 있다면 -f 옵션으로 파일경로를 지정한다. | |||
{| class="wikitable" | {| class="wikitable" | ||
!의도 | !의도 | ||
8번째 줄: | 11번째 줄: | ||
!방법 | !방법 | ||
|- | |- | ||
|컨테이너 실행 | |컨테이너 생성, 실행 | ||
| | | | ||
{| class="wikitable" | |||
!옵션 | |||
!설명 | |||
|- | |||
| -d | |||
|백그라운드에서 실행. | |||
|} | |||
|docker-compose up -d | |docker-compose up -d | ||
|- | |||
|컨테이너 정지 | |||
|컨테이너 일시정지. | |||
|docker-compose stop | |||
|- | |||
|컨테이너 시작 | |||
| | |||
|docker-compose start | |||
|- | |||
|컨테이너 재시작 | |||
| | |||
|docker-compose restart | |||
|- | |- | ||
|컨테이너 다운 | |컨테이너 다운 | ||
| | |compose파일과 관련 있는 컨테이너를 정지, 삭제시킨다. | ||
compose파일과 관련 있는 컨테이너를 | |||
|docker-compose down | |docker-compose down | ||
|} | |||
== 기본내용 == | |||
다음과 같은 형태로 크게 서비스, 네트워크, 볼륨을 정의한다.<syntaxhighlight lang="yaml"> | |||
version: '3' # Compose정의파일의 버전. 소수점 안쓰면 최신버전. | |||
services: | |||
서비스명: | |||
image: 이미지:태그 # 태그 안쓰면 latist | |||
buils: Dockerfile경로 # 안써도 됨. 상대경로 지정 가능. (./디렉토리) | |||
서비스명2: | |||
image: mariadb | |||
restart: always | |||
environment: | |||
MYSQL_RANDOM_ROOT_PASSWORD: 'yes' | |||
volumes: | |||
esdata: | |||
driver: local | |||
</syntaxhighlight>yml 확장자의 파일로 쓰이는데, 들여쓰기로 계층구조를 나타낸다. | |||
=== 서비스 === | |||
{| class="wikitable" | |||
!요소 | |||
!설명 | |||
!방법 | |||
|- | |||
|이미지 지정 | |||
|(필수) | |||
이미지를 지정한다. 태그를 안쓰면 latist. | |||
|<syntaxhighlight lang="yaml"> | |||
services: | |||
서비스명: | |||
image: 이미지:태그 | |||
</syntaxhighlight> | |||
|- | |||
|컨테이너 이름 지정 | |||
|compose 파일로 실행하면 이름을 자동으로 생성하는데, 이게 불편할 때 사용. | |||
|<syntaxhighlight lang="yaml"> | |||
container_name: 컨테이너명 | |||
</syntaxhighlight> | |||
|- | |||
|도커파일 지정 | |||
|도커파일의 경로를 지정한다. | |||
<code>./하위디렉터리</code> 형태로 상대경로로도 가능하다. | |||
도커파일의 이름이 Dockerfile이 아닌 경우, 아래처럼 작성한다. | |||
|<syntaxhighlight lang="yaml"> | |||
서비스명: | |||
build: . # 현재경로 | |||
</syntaxhighlight><syntaxhighlight lang="yaml"> | |||
서비스명: | |||
build: | |||
context: ./하위디렉터리 | |||
dockerfile: 파일명 | |||
</syntaxhighlight> | |||
|- | |||
|포트열기 | |||
|컨테이너가 공개하는 포트를 지정한다. | |||
여러개를 열 수 있다. | |||
|<syntaxhighlight lang="yaml"> | |||
ports: | |||
- 호스트포트:컨테이너포트 | |||
</syntaxhighlight> | |||
|- | |||
|컨테이너 연결 | |||
|별명(앨리어스)를 지정할 수도 있다. | |||
연결해두면 해당 컨테이너에서 http://서비스명 형태로 접근 가능. | |||
|<syntaxhighlight lang="yaml"> | |||
links: | |||
- 서비스명 | |||
- 서비스명:앨리어스명 | |||
</syntaxhighlight> | |||
|- | |||
|링크포트 열기 | |||
|링크된 컨테이너 사이에서만 포트를 공유할 경우. | |||
|<syntaxhighlight lang="yaml"> | |||
expose: | |||
- "포트번호" | |||
</syntaxhighlight> | |||
|- | |||
|의존관계 지정 | |||
|시작 순서를 제어한다.(해당 컨테이너가 이용 가능할 때까지 기다리진 않는다.) | |||
|<syntaxhighlight lang="yaml"> | |||
depends_on: | |||
- 의존하는서비스(ex.mysql) | |||
</syntaxhighlight> | |||
|- | |||
|환경변수 지정 | |||
|컨테이너 안의 환경변수를 지정한다. | |||
yes, no, true, false같은 bool연산자는 따옴표로 둘러싼다. | |||
|<syntaxhighlight lang="yaml"> | |||
environment: | |||
변수명: 값 | |||
변수명2: 'yes' | |||
</syntaxhighlight> | |||
|- | |||
|환경변수 파일 지정 | |||
|설정할 환경변수가 많거나, 보안과 관련된 경우, 파일만 따로 보관하기도 한다. | |||
경로는 상대경로, 절대경로 둘 다 가능. | |||
|<syntaxhighlight lang="yaml"> | |||
env_file: | |||
- ./경로1 | |||
- ./경로2 | |||
</syntaxhighlight> | |||
|} | |||
=== 볼륨 === | |||
{| class="wikitable" | |||
!요소 | |||
!설명 | |||
!방법 | |||
|- | |||
|볼륨 지정 | |||
| | |||
|<syntaxhighlight lang="yaml"> | |||
services: | |||
서비스명: | |||
volumes: | |||
- 호스트디렉토리/:컨테이너디렉토리 | |||
</syntaxhighlight> | |||
|- | |||
|다른 컨테이너로부터 모든 볼륨 마운트 | |||
| | |||
|<syntaxhighlight lang="yaml"> | |||
services: | |||
서비스명: | |||
volumes_from: | |||
- 컨테이너명 | |||
</syntaxhighlight> | |||
|} | |} |
2021년 3월 16일 (화) 22:36 판
개요
여러 컨테이너를 한번에 쌓아올려 이들을 한번에 관리할 때.
의존관계에 있는 컨테이너들을 관리할 때 사용한다.
기초사용
기본적으로 해당 파일이 있는 곳에서 실행한다. 다른 곳에 있다면 -f 옵션으로 파일경로를 지정한다.
의도 | 설명 | 방법 | ||||
---|---|---|---|---|---|---|
컨테이너 생성, 실행 |
|
docker-compose up -d | ||||
컨테이너 정지 | 컨테이너 일시정지. | docker-compose stop | ||||
컨테이너 시작 | docker-compose start | |||||
컨테이너 재시작 | docker-compose restart | |||||
컨테이너 다운 | compose파일과 관련 있는 컨테이너를 정지, 삭제시킨다. | docker-compose down |
기본내용
다음과 같은 형태로 크게 서비스, 네트워크, 볼륨을 정의한다.
version: '3' # Compose정의파일의 버전. 소수점 안쓰면 최신버전.
services:
서비스명:
image: 이미지:태그 # 태그 안쓰면 latist
buils: Dockerfile경로 # 안써도 됨. 상대경로 지정 가능. (./디렉토리)
서비스명2:
image: mariadb
restart: always
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
esdata:
driver: local
yml 확장자의 파일로 쓰이는데, 들여쓰기로 계층구조를 나타낸다.
서비스
요소 | 설명 | 방법 |
---|---|---|
이미지 지정 | (필수)
이미지를 지정한다. 태그를 안쓰면 latist. |
services:
서비스명:
image: 이미지:태그
|
컨테이너 이름 지정 | compose 파일로 실행하면 이름을 자동으로 생성하는데, 이게 불편할 때 사용. | container_name: 컨테이너명
|
도커파일 지정 | 도커파일의 경로를 지정한다.
|
서비스명:
build: . # 현재경로
서비스명:
build:
context: ./하위디렉터리
dockerfile: 파일명
|
포트열기 | 컨테이너가 공개하는 포트를 지정한다.
여러개를 열 수 있다. |
ports:
- 호스트포트:컨테이너포트
|
컨테이너 연결 | 별명(앨리어스)를 지정할 수도 있다.
연결해두면 해당 컨테이너에서 http://서비스명 형태로 접근 가능. |
links:
- 서비스명
- 서비스명:앨리어스명
|
링크포트 열기 | 링크된 컨테이너 사이에서만 포트를 공유할 경우. | expose:
- "포트번호"
|
의존관계 지정 | 시작 순서를 제어한다.(해당 컨테이너가 이용 가능할 때까지 기다리진 않는다.) | depends_on:
- 의존하는서비스(ex.mysql)
|
환경변수 지정 | 컨테이너 안의 환경변수를 지정한다.
yes, no, true, false같은 bool연산자는 따옴표로 둘러싼다. |
environment:
변수명: 값
변수명2: 'yes'
|
환경변수 파일 지정 | 설정할 환경변수가 많거나, 보안과 관련된 경우, 파일만 따로 보관하기도 한다.
경로는 상대경로, 절대경로 둘 다 가능. |
env_file:
- ./경로1
- ./경로2
|
볼륨
요소 | 설명 | 방법 |
---|---|---|
볼륨 지정 | services:
서비스명:
volumes:
- 호스트디렉토리/:컨테이너디렉토리
| |
다른 컨테이너로부터 모든 볼륨 마운트 | services:
서비스명:
volumes_from:
- 컨테이너명
|