Akashic Records

Docker, docker-compose 사용법 본문

Library

Docker, docker-compose 사용법

Andrew's Akashic Records 2023. 4. 24. 14:04
728x90

`docker-compose`는 여러 Docker 컨테이너를 정의하고 관리하기 위한 도구입니다. `docker-compose.yml` 파일을 사용하여 컨테이너, 네트워크, 볼륨 등의 설정을 기술할 수 있습니다. 이를 통해 애플리케이션과 관련된 모든 서비스를 한 번에 관리할 수 있습니다.

1. `docker-compose.yml` 파일 작성

`docker-compose.yml` 파일은 YAML 문법을 사용하며, 각 서비스, 네트워크, 볼륨 등의 설정을 포함합니다. 간단한 예시는 다음과 같습니다.

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: mypassword

 

이 예시에서는 두 개의 서비스(web 및 db)를 정의하고 있습니다. 각 서비스는 Docker 이미지를 기반으로 하며, 추가 설정이 있을 경우 그에 맞추어 구성됩니다.

2. 주요 `docker-compose.yml` 구성 요소

- `version`: Docker Compose 파일 형식의 버전입니다. '3' 또는 '3.x'와 같은 형식을 사용합니다.
- `services`: 애플리케이션의 서비스 목록입니다. 여기에 각 서비스에 대한 설정을 기술합니다.
- `image`: 서비스를 실행하는 데 사용되는 Docker 이미지입니다.
- `build`: 이미지를 빌드하기 위한 Dockerfile이 있는 경로를 지정합니다.
- `ports`: 호스트와 컨테이너 간의 포트 매핑을 설정합니다. 외부에 노출될 포트를 지정합니다.
- `volumes`: 호스트와 컨테이너 간의 볼륨 매핑을 설정합니다. 파일 시스템을 공유할 수 있습니다.
- `environment`: 컨테이너에서 사용할 환경 변수를 설정합니다.
- `depends_on`: 서비스 간의 의존성을 설정합니다. 다른 서비스가 실행된 후에 현재 서비스가 실행됩니다.
- `networks`: 사용할 네트워크를 설정합니다. 사용자 정의 네트워크를 생성할 수도 있습니다.

3. 주요 `docker-compose` 명령어

- `docker-compose up`: `docker-compose.yml` 파일에 정의된 서비스를 시작하거나 업데이트합니다. `-d` 플래그를 사용하면 백그라운드에서 실행할 수 있습니다.

  docker-compose up -d


- `docker-compose down`: `docker-compose.yml` 파일에 정의된 서비스를 중지하고 관련 리소스를 제거합니다. 네트워크, 볼륨 등의 리소스도 함께 삭제합니다.

  docker-compose down


- `docker-compose ps`: `docker-compose.yml` 파일에 정의된 서비스의 상태를 확인합니다.

  docker-compose ps

 

- `docker-compose logs`: `docker-compose.yml` 파일에 정의된 서비스의 로그를 출력합니다. 특정 서비스의 로그만 확인하려면 서비스 이름을 지정할 수 있습니다.

  docker-compose logs [service_name]

 

- `docker-compose pull`: `docker-compose.yml` 파일에 정의된 서비스의 이미지를 가져옵니다.

  docker-compose pull

 

- `docker-compose build`: `docker-compose.yml` 파일에 정의된 서비스를 빌드합니다. `build` 키를 사용하여 Dockerfile의 위치를 지정해야 합니다.

  docker-compose build

 

- `docker-compose exec`: 실행 중인 컨테이너에서 명령어를 실행합니다. 서비스 이름과 실행할 명령어를 지정해야 합니다.

  docker-compose exec [service_name] [command]

 

- `docker-compose stop`: `docker-compose.yml` 파일에 정의된 서비스를 중지합니다. 서비스를 제거하지 않고 일시 중지할 수 있습니다.

  docker-compose stop

 

- `docker-compose start`: 이전에 중지된 서비스를 다시 시작합니다.

  docker-compose start

 

`docker-compose`를 사용하면 여러 서비스로 구성된 애플리케이션을 한 번에 관리할 수 있습니다. 이를 통해 개발, 테스트, 배포 등의 작업을 효율적으로 수행할 수 있습니다.

 

728x90
Comments