0%

docker-compose 치트시트 & docker-compose.yml 설정 개요

docker-compose 치트시트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 포어그라운드로 실행
# 현재 디렉토리에 yml 파일이 존재해야함
docker-compose up

# 데몬으로 실행
# 현재 디렉토리에 yml 파일이 존재해야함
docker-compose up -d

# 제거
# 현재 디렉토리에 yml 파일이 존재해야함
docker-compose down

# 특정 경로에 yml 파일을 포어그라운드로 실행
docker-compose -f ../compose/myservice/docker-compose.yml up -d

# 특정 경로의 서비스를 제거
docker-compose -f ../compose/myservice/docker-compose.yml down

docker-compose.yml 설정 개요

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# docker engine 에 따른 사용가능 버젼 기입
version: "3"

# 실행할 컨테이너 정보들
services:

# 컨테이너 네임
my-nginx:
# 실행될 이미지 네임
# 이미지 조회 순서는 local -> docker hub
# 없는경우 오류 발생
image: mynginx:latest

# 이미지가 없는경우 docker build 지정
build: ../../nginx/

# 포트 매핑 외부:내부
ports:
- "8080:80"

my-redis:
image: myredis:latest
build: ../../redis/

docker-compose 역할

컨테이너의 실행 계획을 작성하여 타이핑으로부터 실수를 방지해줍니다.
다수의 컨테이너를 실행하고 종료할 수 있습니다.

아래와 같이 이미지 하나 하나를 run 하는 일은 아무래도 좋지 못해보입니다.

1
2
3
4
docker run option... image_1 port..
docker run option... image_2 port..
docker run option... image_3 port..
docker run option... image_4 port..

따라서 위 과정을 스크립트로 제작할 수 도 있지만,
docker-compose 를 통해 쉽게 처리가 가능합니다.

참고

https://docs.docker.com/compose/reference/overview/
https://docs.docker.com/compose/compose-file/