- Docker Compose - 여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴이다.
- compose.yml 파일을 만들어 작성한다.
services:
websever:
container_name: webserver
image: nginx
ports:
- 80:80
$ 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 up : 이미지가 없을 때만 빌드해서 컨테이너를 실행시킨다. 이미지가 이미 존재하는 경우 이미지를 빌드하지 않고 컨테이너를 실행시킨다.
- docker compose up --build : 이미지가 있건 없건 무조건 빌드를 다시해서 컨테이너를 실행시킨다.
$ docker compose pull
- compose.yml에서 정의된 이미지를 다운받거나 업데이트한다.
$ docker compose down
- 컨테이너 종료
Docker Compose로 Spring Boot 실행시키기
@RestController
public class AppController {
@GetMapping("/")
public String home() {
return "Hello, World!";
}
}
- 간단한 코드 작성
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
- Dockerfile 작성
$ ./gradlew clean build
- 빌드를 해야 jar를 컨테이너에 띄울 수 있다.
services:
my-server:
build: .
ports:
- 8080:8080
- compose.yml 작성
- build: . : compose.yml이 존재하는 디렉토리 (.) 에 있는 Dockerfile로 이미지를 생성해 컨테이너를 띄우겠다는 의미이다.
$ docker compose up -d --build
- compose 파일 실행시키기
$ docker compose ps
$ docker ps
- 실행 컨테이너 보기
- localhost:8080 들어가보기
$ docker compose down
- compose로 실행된 컨테이너 삭제
Docker CLI <ㅡ> Docker Compose 쉽게 작성하기
- Docker CLI ㅡ> Docker Compose : https://www.composerize.com/
- Docker Compose ㅡ> Docker CLI : https://www.decomposerize.com/
'개발이 좋아서 > Docker가 좋아서' 카테고리의 다른 글
AWS EC2에서 Docker를 활용해 배포해보기 (0) | 2025.01.23 |
---|---|
Docker Compose를 활용해 2개 이상의 컨테이너 관리하기 (1) | 2025.01.23 |
Dockerfile 활용해 이미지 직접 만들기 (0) | 2025.01.23 |
Docker Volume(도커 볼륨)을 활용해 데이터 유실 방지하기 (0) | 2025.01.22 |
Docker CLI 익히기 (0) | 2025.01.22 |