다시 정리해보는 Docker - Docker Compose 편
Docker Compose
: 여러 개의 도커 컨테이너를 한 번에 관리하기 위한 도구
: yml 형식의 파일을 통해 구성 정보를 정의
설치방법
: 도커 컴포즈 깃허브 (https://github.com/docker/compose)에서 설치
=> README 참조 (최신 버전 확인)
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
: 도커 컴포즈 다운로드
chmod +x /usr/local/bin/docker-compose
: 실행 권한 부여
docker-compose --version
: 도커 컴포즈 버전 확인 (정상 설치 여부 확인)
도커 컴포즈 명령어
ㆍ컴포즈 실행 (컴포즈 파일이 존재하는 디렉터리에서 실행)
: docker-compose up -d
: docker-compose -f 컴포즈파일_경로 up
: -d = background 실행
: -f = file 지정
: --scale 서비스_명=서비스수 = 서비스에 할당되는 컨테이너의 개수
ㆍ컴포즈 종료
: docker-compose down
: 모든 컴포즈 컨테이너 종료 및 삭제
ㆍ컴포즈 정지
: docker-compose stop
: 모든 컴포즈 컨테이너 정지
ㆍ컴포즈 컨테이너 확인
: docker-compose ps
ㆍ로그 확인
: docker-compose logs 서비스_이름 -f
: -f = 실시간 로그 확인
ㆍ컨테이너 조작 (실행 / 정지된 컨테이너 시작 / 정지 / 일시정지 / 재개)
: docker-compose run 서비스_명
: docker-compose start 서비스_명
: docker-compose stop 서비스_명
: docker-compose pause 서비스_명
: docker-compose unpause 서비스_명
ㆍ공개된 포트 표시
: docker-compose port
※ YML / YAML
: 들여쓰기를 통해 데이터의 계층 구조를 나타내는 구조화 데이터 표현 포맷
: 스페이스를 통해 들여쓰기 구분
: -을 앞에 두면 배열의 요소 표현
: 참조 (https://2mukee.tistory.com/230)
도커 컴포즈 최상위 Key
ㆍversion
: 도커 파일의 버전을 나타내는 Key (필수요소)
: 3이상 작성하는 것을 권장
: Docker Engine 17 이상의 경우 반드시 3이상으로 작성
: Docker swarm 사용시에도 3이상으로 작성
ㆍservices
: 도커 컴포즈를 통해 실행시킬 서비스 정의 (필수요소)
: 서비스안에 컨테이너를 정의
ㆍnetworks
: 브릿지, 컨테이너 등 컴포즈 내에서 사용될 네트워크 인터페이스 정의
도커 컴포즈 파일 예시
version: '3.8'
services:
main:
image: 2mukee/mh_main_deploy
ports:
- 443:17260
depends_on:
- db
environment:
- TZ=Asia/Seoul
db:
image: 2mukee/mh_db_deploy
volumes:
- /home/mh-dev/data:/data/db
environment:
- TZ=Asia/Seoul
api:
image: 2mukee/mh_api_deploy
depends_on:
- main
environment:
- TZ=Asia/Seoul
env_file:
- ./api/mh.env
참조 (https://2mukee.tistory.com/233)
Refference
: 완벽한 IT 인프라 구축을 위한 Docker (http://www.yes24.com/Product/Goods/64728692)