도커:compose: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
편집 요약 없음 |
(→서비스) |
||
154번째 줄: | 154번째 줄: | ||
|- | |- | ||
|볼륨 지정 | |볼륨 지정 | ||
| | |호스트디렉토리를 컨테이너디렉토리에 덮어쓴다. | ||
호스트디렉토리는 컨테이너가 사라져도 유지. | |||
|<syntaxhighlight lang="yaml"> | |<syntaxhighlight lang="yaml"> | ||
services: | services: |
2021년 3월 17일 (수) 08:05 판
개요
여러 컨테이너를 한번에 쌓아올려 이들을 한번에 관리할 때.
의존관계에 있는 컨테이너들을 관리할 때 사용한다.
기초사용
기본적으로 해당 파일이 있는 곳에서 실행한다. 다른 곳에 있다면 -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 확장자의 파일로 쓰이는데, 들여쓰기로 계층구조를 나타낸다.
서비스
다음과 같은 형태로 계층화 하여 작성한다.
services:
서비스명:
image: 이미지:태그
요소 | 설명 | 방법 |
---|---|---|
이미지 지정 | (필수)
이미지를 지정한다. 태그를 안쓰면 latist. |
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:
- 컨테이너명
|