Zeno ZENO

Part 12. Docker Compose로 여러 컨테이너 실행하기

Docker Compose의 핵심은 여러 컨테이너를 하나의 설정 파일로 동시에 실행하는 것이다. 이번 글에서는 app과 redis 두 개의 서비스를 정의하고 docker compose up, down 명령어로 여러 컨테이너를 관리하는 흐름을 실습한다.

Part 12. Docker Compose로 여러 컨테이너 실행하기

1. Part 11에서 한 것

Part 11에서는 Docker Compose로 컨테이너 하나를 실행했다.

services:
  app:
    image: ubuntu
    command: echo "Hello Compose"

이 설정은 app 서비스 하나만 실행한다.


2. 이번 Part에서 할 것

이번에는 Docker Compose로 여러 컨테이너를 동시에 실행한다.

Docker Compose의 핵심은 여러 서비스를 하나의 파일에서 관리하는 것이다.

app 컨테이너

redis 컨테이너

두 개의 서비스를 docker-compose.yml 파일에 정의하고 한 번에 실행한다.


3. 왜 여러 컨테이너가 필요한가?

실제 프로젝트는 하나의 프로그램만으로 구성되지 않는 경우가 많다.

예를 들어 웹 서비스는 다음과 같은 구성요소를 함께 사용한다.

웹 애플리케이션

데이터베이스

캐시 서버

웹 서버

Laravel 프로젝트라면 나중에 다음과 같은 구조가 될 수 있다.

Laravel app

PostgreSQL

Redis

Nginx

이런 여러 실행 단위를 Docker Compose로 함께 관리할 수 있다.


4. services는 컨테이너 목록이다

Docker Compose에서 services는 실행할 컨테이너 목록이다.

services:
  app:
  redis:

이 구조는 app과 redis 두 개의 서비스를 실행한다는 뜻이다.


5. app 서비스

app 서비스는 Ubuntu 이미지를 사용한다.

app:
  image: ubuntu
  command: echo "Hello App"

컨테이너가 실행되면 Hello App 문장을 출력하고 종료된다.


6. redis 서비스

redis 서비스는 Redis 이미지를 사용한다.

redis:
  image: redis:latest

Redis는 메모리 기반 저장소다.

캐시, 세션, 큐 처리 등에 자주 사용된다.

이번 글에서는 Redis를 깊게 다루지 않고, 여러 컨테이너를 동시에 실행하는 예제로만 사용한다.


7. docker-compose.yml 작성

services:
  app:
    image: ubuntu
    command: echo "Hello App"

  redis:
    image: redis:latest

이 파일은 두 개의 서비스를 정의한다.

app = Ubuntu 컨테이너

redis = Redis 컨테이너

8. docker compose up 실행

AD

제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다

애드픽 쇼핑메이트 회원가입

쇼핑정보로 재테크하는 꿀팁! 애드픽 쇼핑메이트

docker compose up

Compose는 docker-compose.yml 파일을 읽고 services 아래의 컨테이너들을 실행한다.

app 실행

redis 실행

9. 실행 결과

app 서비스는 Hello App을 출력하고 종료된다.

redis 서비스는 서버처럼 계속 실행된다.

그래서 터미널에는 Redis 로그가 계속 표시될 수 있다.


10. 실행 중인 컨테이너 확인

다른 터미널에서 다음 명령어를 실행하면 실행 중인 컨테이너를 확인할 수 있다.

docker ps

Redis 컨테이너가 실행 중인 것을 확인할 수 있다.


11. docker compose down

docker compose down

Compose로 실행한 컨테이너와 네트워크를 정리한다.

Redis처럼 계속 실행되는 컨테이너도 종료된다.


12. 이번 실습에서 중요한 점

app은 명령어를 실행하고 바로 종료된다.

redis는 서버 프로그램이라 계속 실행된다.

app = 일회성 실행

redis = 계속 실행되는 서버

컨테이너는 실행하는 프로그램의 성격에 따라 바로 종료될 수도 있고 계속 실행될 수도 있다.


13. Part 12 정리

services = 실행할 컨테이너 목록

app = Ubuntu 컨테이너

redis = Redis 컨테이너

docker compose up = 여러 컨테이너 실행

docker compose down = Compose 컨테이너 정리

이번 글에서는 Docker Compose로 여러 컨테이너를 동시에 실행했다.

다음 Part에서는 PostgreSQL 컨테이너를 실행하고 데이터베이스 환경을 구성해본다.

AD

제휴 광고

일부 링크는 제휴 링크이며, 구매 또는 가입 시 일정 수수료를 받을 수 있습니다.

AD

'Docker' 카테고리의 다른 글

전체보기