Post

[Docker-Compose] Docker-Compose Command

[Docker-Compose] Docker-Compose Command

Version 확인

1
docker-compose --version

Container 생성 및 실행

  • -d : 백그라운드 실행
  • --no-deps : 링크 서비스 실행하지 않음
  • --build : Image 빌드
  • -t : Timeout을 지정(기본 10초)
1
docker-compose up [옵션] [서비스명]

특정 서비스들의 경우, 백그라운드로 실행하지 않으면 Container가 생성 및 실행되며, 바로 종료될 수 있다.

현재 동작중인 Container 상태를 확인

1
docker-compose ps

Container Log 출력

1
docker-compose logs

docker-compose up 명령어를 이용해 생성 및 실행된 Container에서 임의의 명령을 실행하기 위해 사용

  • Container들을 모두 삭제할 경우 docker-compose start가 아닌, docker-compose up으로 다시 Container들을 생성 해주어야 한다.
1
docker-compose run
  • 만약 특정 서비스에서 /bin/bash를 실행시켜 Shell 환경으로 진입하고 싶다면 아래와 같은 명령어를 이용하면 된다.

참고로 서비스명과 Container명은 다르다.

  • 서비스명은 docker-compose.ymlservices: 밑에 작성한 서비스 이름이다.
1
2
# docker-compose run [서비스명] [명령]
docker-compose run redis /bin/bash

서비스 제어

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 서비스 시작
docker-compose start

# 서비스 정지
docker-compose stop

# 서비스 일시 정지
docker-compose pause

# 서비스 일시 정지 해제
docker-compose unpause

# 서비스 재시작
docker-compose restart

각각의 설정 뒤에 서비스명을 붙이면 특정 서비스만 제어할 수 있다.

1
docker-compose restart [서비스명]

docker-compose로 생성한 Container들을 일괄 삭제

1
docker-compose rm

삭제 전, 관련 Container들을 종료 시켜두어야 한다.

실행중인 Container를 강제로 정지

  • -s 옵션을 사용하여 시그널을 지정해줄 수 있는데, 아래 코드에서는 SIGINT를 사용하였다.
  • -s 옵션을 사용하지 않고 docker-compose kill만 사용할 경우 SIGKILL이 전송된다.
  • kill 뒤에 서비스를 지정하여 특정 서비스만 kill할 수 있다.
1
2
# docker-compose kill [옵션]
docker-compose kill -s SIGINT

네트워크 정보, 볼륨, Container들을 일괄 정지 및 삭제 처리

1
docker-compose down

docker-compose down --rmi all 명령을 사용한다면 모든 Image까지 삭제한다.

서비스 포트 번호의 설정 확인

1
2
# docker-compose port [서비스명] [포트 번호]
docker-compose port nginx 80

docker-compose 구성 파일의 내용을 확인

1
docker-compose config

docker-compose.yml의 내용을 출력 해주므로 많이 쓸 일은 없다.

This post is licensed under CC BY 4.0 by the author.