Programming > Docker

docker-compose 기본옵션 및 명령어

docker-compose.yml 기본형식

version: '3.7'

service:
    service_name1:
        image:          # 옵션설정
        command:        # 옵션설정
        ports:          # 옵션설정
        environment:    # 옵션설정
        volumes:        # 옵션설정
    service_name2:      # 서비스명 나열

volumes: # 옵션설정

network: # 옵션설정

CMD옵션과 docker-compose옵션 비교

설정설명 docker run command docker-compose.yml
컨테이너 명 --name container_name
환경변수 -e environment
port forward -p ports
기본docker image command의 뒷편에 기술 image

주된 명령어 

뒤에 컨테이너명 지정하면 해당 컨테이너만 대상으로 한다.

명령어 설명
up 모든 컨테이너를 생성하고 실행시킨다.
scale 생성할 컨테이너의 갯수 지정
ps 컨테이너 리스트를 확인한다.
logs 컨테이너 로그를 출력한다.
run 실행중 컨테이너에서 새로운 명령어를 실행한다.
# docker-compose run mycent /bin/bash
start 모든 컨테이너를 실행한다.
stop 모든 컨테이너를 중지한다.
restart 모든 컨테이너를 재기동한다.
kill 모든 컨테이너를 종료한다.
rm 모든 커네이너를 삭제한다.

여러 컨테이너를 한번에 생성/실행

docker-compose up [옵션][서비스명]

 
Options 설명
-d 백그라운드에서 실행한다. ( $docker-compose up -d )
--no-deps 링크된 서비스는 실행하지 않는다.
--no-build 이미지를 빌드하지 않는다.
-t, --timeout 컨테이너 타임아웃시간 설정 (default=10sec)
생성할 컨테이너 갯수를 지정하기 (scale)

$ docker-compose scale [서비스명=갯수]

※ 컨테이너 conA를 10개 conB를 100개 실행시킬려면
$ docker-compose scale conA=10 conB=100

사용법

컨테이너 일괄로 백그라운드 기동

# docker-compose up -d
# docker-compose up -d --build  (배포한 후 빌드할 경우)​​​​​

컨테이너 일괄 종료/ 종료+삭제

# docker-compose stop
# docker-compose down

특정 컨테이너 접근

# docker-compose -it [컨테이너명] /bin/bash