#wannabeeeeeee the best DataScientist
Docker Compose 본문
✅ Docker Copmose란?
여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴이다.
✅ Docker Compose를 사용하는 이유
- 여러 개의 컨테이너를 관리하는 데 용이
- 복잡한 명령어로 실행시키던 걸 간소화 시킬 수 있음
✅ Docker Compose로 컨테이너를 실행
# compose.yml 파일 작성하기
services:
my-web-server:
container_name: webserver
image: nginx
ports:
- 80:80
- services(my-web-server) : Docker Compose에서 하나의 컨테이너를 서비스(service)라고 부른다. 이 옵션은 서비스에 이름을 붙이는 기능이다.
- container_name(web-server) : 컨테이너를 띄울 때 붙이는 별칭이다. CLI에서 --name web-server 역할과 동일하다.
- image: nginx : 컨테이너를 실행시킬 때 어떤 이미지를 사용할 지 정의하는 명령어이다. $ docker run [이미지명]와 동일한 역할이다.
- ports : 포트 매핑은 어떻게 할 지를 설정하는 옵션이다. CLI에서-p 80:80 역할과 동일하다.
✅ 자주 사용하는 Docker Compose CLI 명령어
아래 명령어들은 compose.yml이 존재하는 디렉토리에서 실행시켜야 한다.
# compose.yml에서 정의한 컨테이너 실행
docker compose up # 포그라운드에서 실행
docker compose up -d # 백그라운드에서 실행
# compose.yml에 정의된 컨테이너 중 실행 중인 컨테이너만 보여준다.
docker compose ps
# compose.yml에 정의된 모든 컨테이너를 보여준다.
docker compose ps -a
# compose.yml에 정의된 모든 컨테이너의 로그를 모아서 출력한다.
docker compose logs
# 컨테이너를 실행하기 전에 이미지 재빌드하기
docker compose up --build # 포그라운드에서 실행
docker compose up --build -d # 백그라운드에서 실행
# 이미지 다운받기 / 업데이트하기
docker compose pull
# Docker Compose에서 이용한 컨테이너 종료하기
docker compose down
💡 Docker CLI vs Docker Compose 실행
✔ Redis 실행
# Docker CLI
docker run -d -p 6379:6379 redis
# Docker Compose
# compose.yml 파일 작성하기
services:
my-cache-server:
image: redis
ports:
- 6379:6379
✔ MySQL 실행
# Docker CLI
docker run -e MYSQL_ROOT_PASSWORD=pwd1234
-p 3306:3306
-v /Users/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql
-d mysql
# Docker Compose
# compose.yml 파일 작성하기
services:
my-db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: pwd1234
volumes:
- ./mysql_data:/var/lib/mysql
ports:
- 3306:3306
✔ 백엔드(Spring Boot) 실행
# Docker CLI
# Dockerfile 작성하기
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
# Spring Boot 프로젝트 빌드하기
./gradlew clean build
# Docker Compose
# compose.yml 파일 작성하기
services:
my-server:
build: .
ports:
- 8080:8080
# compose 파일 실행
docker compose up -d --build
build: . : compose.yml이 존재하는 디렉토리(.)에 있는 Dockerfile로 이미지를 생성해 컨테이너를 띄우겠다는 의미이다.
▣ 지금까지의 예제를 보면 Docker CLI로 작성할 수 있는 명령어는 전부 compose.yml 파일로 옮길 수 있다. 반대로 compose.yml에 작성한 모든 값은 Docker CLI로 나타낼 수 있다. 이를 편하게 변환해주는 사이트가 존재한다.
✅ Docker CLI → compose.yml로 변환
Composerize
Say goodbye to sprawling docker commands and say hello to $ docker-compose up :) Looking for the reverse (Docker compose to docker run command(s)) ? Try Decomposerize Want to convert from Docker compose file formats ? Try Composeverter Paste your docker ru
www.composerize.com
✅ compose.yml → Docker CLI로 변환
Decomposerize
Convert your docker compose file to $ docker run command(s) :) Paste your docker compose file content into the box below! Looking for the reverse (docker run command(s) to Docker compose) ? Try Composerize Want to convert from Docker compose file formats ?
www.decomposerize.com
'Data scientist > Docker' 카테고리의 다른 글
Docker File (0) | 2025.05.07 |
---|---|
Docker 실습(2) (1) | 2025.05.06 |
Docker 실습(1) (0) | 2025.05.04 |
Docker 기본 개념 (0) | 2025.05.04 |