docs를 참고하여 설치를 진행한다.
sudo apt-get update
sudo apt-get install docker-compose-plugin
본 명령어는 Compose V2를 기준으로 작성함.
docker compose COMMAND
docker compose —help
-f
옵션을 사용하여 Compose 파일을 직접 지정할 수 있다.
-f
옵션을 사용하지 않으면, Compose는 compose.yml
파일을 찾기 위해 작업 디렉토리와 부모 티렉토리를 탐색함.-f
옵션을 여러 번 사용하여 여러 Compose파일을 제공할 수 있음docker compose -f docker-compose.yml -f docker-compose.admin.yml run backup_db
-f
옵션 뒤에 절대경로를 지정하여 사용할 수 있음—profile
을 통해 Compose 파일에서 profile이 등록된 서비스를 활성화시킬 수 있다.
docker compose --profile frontend --profile debug up
docker compose pull [OPTIONS] [SERVICE...]
docker-compose.yml 내에 명시한 서비스의 이미지를 pull 해온다.
명령어 | 설명 |
---|---|
--ignore-pull-failures | pull이 실패할 경우 무시 |
--include-deps | 종속성으로 선언된 이미지를 가져옴 |
--quiet , -q | STDOUT 없이 빌드함 |
db
일 경우, docker compose pull db
를 입력하면 해당하는 이미지를 pull해옴docker compose build [OPTIONS] [SERVICE...]
docker-compose.yml 내에 명시한 서비스를 빌드하거나 re-build함
명령어 | 설명 |
---|---|
--build-arg | build에서 사용하는 arg를 설정 |
--no-cache | 빌드 시 캐시를 사용하지 않음 |
--pull | 항상 최신 버전의 이미지를 가져옴 |
--quiet , -q | STDOUT 없이 빌드함 |
docker compose up [OPTIONS] [SERVICE...]
Docker Compose에 정의되어 있는 모든 서비스 컨테이너를 한 번에 생성하고 실행한다.
명령어 | Default | 설명 |
---|---|---|
--attach | 서비스 출력에 연결 | |
--attach-dependencies | 종속 컨테이너에 연결 | |
--build | 컨테이너 시작 전에 이미지를 빌드함 | |
--detach , -d | 백그라운드 모드 적용 | |
--force-recreate | 이미지나 구성이 변경되지 않았더라도 다시 create함 | |
--no-build | 이미지가 없어도, 빌드하지 않음 | |
--no-deps | link된 서비스를 시작하지 않음 | |
--no-recreate | 컨테이너가 이미 있는 경우 다시 만들지 않음 (—force-recreate와 같이 사용 못함) | |
--no-start | 서비스를 만들고, 시작하지 않음 | |
--pull | missing | running하기 전에 이미지를 pull 할 지 결정 ("always" |
--quiet-pull | 조용히 pull함 | |
--remove-orphans | compose 파일에 정의되지 않은 서비스의 컨테이너 제거 | |
--timeout , -t | 10 | 컨테이너의 타임아웃을 지정(기본 10초) |
docker compose ps [OPTIONS] [SERVICE...]
Compose의 컨테이너 목록을 표시한다.
명령어 | Default | 설명 |
---|---|---|
--all , -a | 중지된 서비스까지 모두 표시 | |
--format | pretty | 출력 형식을 지정 |
--quiet , -q | 컨테이너 id만 출력 | |
--services | 서비스들을 보여줌 | |
--status | 상태별로 필터링함. 상태: [paused |
docker compose ps --format json | jq .
# 아래는 출력
[
{
"ID": "1553b0236cf4d2715845f053a4ee97042c4f9a2ef655731ee34f1f7940eaa41a",
"Name": "example-bar-1",
"Command": "/docker-entrypoint.sh nginx -g 'daemon off;'",
"Project": "example",
"Service": "bar",
"State": "exited",
"Health": "",
"ExitCode": 0,
"Publishers": null
},
{
"ID": "f02a4efaabb67416e1ff127d51c4b5578634a0ad5743bd65225ff7d1909a3fa0",
"Name": "example-foo-1",
"Command": "/docker-entrypoint.sh nginx -g 'daemon off;'",
"Project": "example",
"Service": "foo",
"State": "running",
"Health": "",
"ExitCode": 0,
"Publishers": [
{
"URL": "0.0.0.0",
"TargetPort": 80,
"PublishedPort": 8080,
"Protocol": "tcp"
}
]
}
]
docker compose logs [OPTIONS] [SERVICE...]
명시한 서비스의 로그를 출력한다.
명령어 | Default | 설명 |
---|---|---|
--follow , -f | logs를 계속적으로 follow한다. | |
--no-color | 흑백으로 출력 | |
--since | 명시한 시간 이후의 로그를 출력(e.g. 2013-01-02T13:23:37Z : 해당하는 시간부터 출력) (e.g. 42m : 42분 전부터 출력) | |
--until | 명시한 시간까지의 로그를 출력(—since와 같은 양식) | |
--tail | all | 컨테이너 로그 끝에서부터 표시할 로그의 개수 |
--timestamps , -t | timestamp를 출력함 |
docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]
새로운 서비스 컨테이너를 실행하고, 특정 명령어를 일회성으로 실행한다.
명령어 | Default | 설명 |
---|---|---|
--detach , -d | 백그라운드에서 실행 | |
--entrypoint | entrypoint를 재정의 | |
--env , -e | 환경변수를 설정 | |
--interactive , -i | true | interactive한 모드 적용 |
--label , -l | label을 재정의 | |
--name | 컨테이너에 이름을 할당 | |
--publish , -p | 포트를 지정 | |
--quiet-pull | 필요할 경우 조용히 pull을 진행 | |
--rm | exits될 경우 컨테이너를 제거 | |
--tty , -t | true | tty를 활성화함 |
--user , -u | 지정 유저로 명령을 실행 | |
--volume , -v | 볼륨을 마운트시킴 | |
--workdir , -w | 작업공간을 명시 |
docker compose start [SERVICE...]
내려가있는 특정 컨테이너를 시작시킴
docker compose up
을 해주어도 됨docker compose stop [OPTIONS] [SERVICE...]
컨테이너를 제거하지 않고 실행만 중지함
pause
를 사용해야 함docker compose restart [OPTIONS] [SERVICE...]
서비스 컨테이너를 재시작함
docker compose pause [SERVICE...]
docker compose unpause [SERVICE...]
서비스를 일시중지하거나 일시중지를 해제한다.
stop
과 달리 실행중인 프로세스를 kill하지 않고 유지(메모리가 유지됨)서비스 컨테이너와 로컬 파일 시스템 간에 파일이나 폴더 복사함.
docker compose cp [OPTIONS] SERVICE_container:SRC_PATH DEST_PATH
docker compose cp [OPTIONS] SRC_PATH SERVICE_container:DEST_PATH
docker compose cp [OPTIONS] SERVICE_container:SRC_PATH SERVICE_container:DEST_PATH
docker compose exec [OPTIONS] SERVICE COMMAND [ARGS...]
실행중인 서비스 컨테이너에서 명령을 실행한다. (실행되어있는 컨테이너에서 실행)
docker exec
와 동일함명령어 | Default | 설명 |
---|---|---|
--detach , -d | 백그라운드에서 명령 실행 | |
--env , -e | 환경변수 설정 | |
--interactive , -i | true | interactive 한 모드에서 실행 |
--privileged | 프로세스에 확장된 권한 부여 | |
--tty , -t | true | tty를 활성화함 |
--user , -u | 지정 유저로 명령을 실행 | |
--workdir , -w | 명령을 실행할 작업공간을 명시 |
docker compose kill [OPTIONS] [SERVICE...]
실행중인 컨테이너에 신호를 보내어 강제로 정지시킨다.
명령어 | Default | 설명 |
---|---|---|
--remove-orphans | Compose 파일에 정의되지 않은 서비스의 컨테이너를 제거 | |
--signal , -s | SIGKILL | 보낼 신호를 명시 |
docker compose rm [OPTIONS] [SERVICE...]
중지된 서비스 컨테이너를 제거함.
명령어 | 설명 |
---|---|
--force , -f | 강제로 제거(제거 확인 메세지를 출력하지 않음) |
--stop , -s | 컨테이너를 제거하기 전에 중지시킨다. |
--volumes , -v | 컨테이너에 연결된 모든 익명으로된 볼륨을 제거함 |
docker compose down [OPTIONS]
모든 서비스 컨테이너를 중지하고, 리소스(컨테이너, 볼륨, 네트워크, up
으로부터 만들어진 이미지)를 삭제한다.
명령어 | Default | 설명 |
---|---|---|
--rmi | “all”은 모든 이미지를 삭제하지만, “local”로 하면 태그가 없는 이미지만 삭제함 | |
--volumes , -v | Compose 파일의 볼륨 섹션에서 정의했던 볼륨을 삭제 |
안녕하세요 운영자님
인카토스입니다.
먼저, 댓글로 인사를 드리게 된 점 양해 부탁 드립니다.
이렇게 연락 드린 이유는 이번에 저희가 제작한 도커 각티슈케이스 제품 협찬을 제안드리고 싶어서 연락 드렸습니다.
개발자들에게 많은 사랑은 받은 각티슈케이스입니다.
저희 상품 블로그 포스팅이 가능하실지 여쭙고자 연락드렸습니다.
아니면 클리앙,서버포럼, okky,2cpu,그누보드 등 가입되어 있으신 개발자 커뮤니티가 있으시다면 해당 커뮤니티에 아래와 비슷하게 게시글을 올려주실수 있을까요?
클리앙 : https://www.clien.net/service/board/park/17797443
연락드릴수 있는방법이 댓글밖에 보이지 않아 이렇게 먼저 연락드립니다.
협찬제안에 긍정적인 검토 부탁드리고 제안이 마음에 드신다면 하기 메일로 메일주시면 제품 보내드리도록 하겠습니다.
sungjh0726@naver.com
협찬제품 링크 : https://incatos.shop/surl/P/11