zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (760)
    • 개발이 좋아서 (378)
      • SAP가 좋아서 (0)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

개발이 좋아서/Docker가 좋아서

Docker Compose를 활용해 컨테이너 관리하기

2025. 1. 23. 15:27

- 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

    티스토리툴바