- 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)
- #1. Docker 기본 개념
- #2. Docker 기본 CLI
- #3. Docker Volume
- #4. Dockerfile
- #5. Docker Compose (해당 글)
Docker Compose를 사용하는 이유
- 여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴.
- 컨테이너 여러 개를 동시에 띄우는 경우에 사용.
- 실행할 때 작성한 복잡한 명령어를 간소화시킬 수 있음.
예시 : Nginx 설치 및 실행
docker cli로 nginx 컨테이너 실행 할 때
$ docker run --name webserver -d -p 80:80 nginx
docker compose 사용하여 실행 할 때
- 파일명은 compose.yml 지정
- yml 파일은 들여쓰기로 계층을 나누어 판단하므로 들여 쓰기 주의
services: # 하나의 컨테이너를 서비스라고 한다
my-web-server: # 서비스 이름 지정
container_name: web-server
image: nginx
ports:
- 80:80
compose 파일 실행 / 중지
- compose.yml 파일이 있는 경로에서 명령어 실행
$ dokcer compose up
$ docker compose up -d 백그라운드 실행
$ docker compose down 컨테이너 중지 / 삭제
Docker Compose CLI 명령어
$ docker compose up -d
-d는 "detached 모드"로 터미널을 점유하지 않고 실행
컨테이너를 백그라운드에서 실행
$ docker compose ps
상태와 포트 정보 등을 확인할 수 있다
현재 실행 중인 컨테이너 목록을 보여줌
$ docker compose ps -a
실행 중/중지된 컨테이너 상태를 모두 확인할 때 사용
종료된 컨테이너 포함 모든 컨테이너 목록을 보여줌
$ docker compose logs
문제 원인 파악이나 동작 확인에 유용
컨테이너에서 출력한 로그를 확인할 수 있다
$ docker compose up --build
코드나 Dockerfile이 변경된 경우 사용
컨테이너를 실행하기 전에 이미지를 새로 빌드
$ docker compose pull
이미지 업데이트가 필요할 때 사용
docker-compose.yml에 정의된 이미지를 최신 버전으로 다운로드
$ docker compose down
초기화하거나 정리할 때 사용
실행 중인 컨테이너, 네트워크, 볼륨 등을 완전히 종료 및 삭제
예시 : Spring Boot 실행하기
- compose.yml 아래와 같이 작성
services:
my-server:
build: . # 현재 경로에 있는 Docker파일로 만들어진 이미지를 기반으로 컨테이너를 띄우겠다
ports:
- 8080:8080
Docker CLI ↔ compose.yml 변환
- Docker CLI로 작성할 수 있는 명령어는 전부 compose.yml 파일로 옮길 수 있다. 반대로 compose.yml에 작성한 모든 값은 Docker CLI로 나타낼 수 있다.
- Docker CLI → compose.yml로 변환
- compose.yml → Docker CLI로 변환
'Docker' 카테고리의 다른 글
[Docker] dockerd / docker.socket (0) | 2025.06.15 |
---|---|
[Docker] Docker Compose - 예제 (도커 강의 정리 #6) (0) | 2025.05.16 |
[Docker] Dockerfile (도커 강의 정리 #4) (0) | 2025.04.30 |
[Docker] Docker Volume (도커 강의 정리 #3) (0) | 2025.04.23 |
[Docker] Docker 기본 CLI (도커 강의 정리 #2) (0) | 2025.04.14 |