본문 바로가기
풀스택 개발 들여다보기

[Docker] docker-compose로 도커 명령어 관리하기

by 영바이트 2022. 2. 21.

 

도커 실행 명령은 옵션에 따라 길어지기도 하고 이렇게 긴 명령은 기억이 잘 나지 않을 때도 많다. 더 나아가 담당자가 바뀌면 도커 이미지를 어떻게 실행시켜야 하는지 인계가 아예 안 될 수도 있다.

 

docker-compose는 YAML 스크립트(.yml 파일)를 이용해서 도커 이미지 활성화 명령을 파일로 관리할 수 있도록 도와주는 프로그램이다. YAML 스크립트에 대해 처음 듣는다고 겁 내지는 말자. 내용이 간단하고 또 필요한 부분만 기억하고 있으면 되기 때문에 어렵지 않다.

 

1. docker-compose 설치

$> sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$> sudo chmod +x /usr/local/bin/docker-compose

 

2. compose 파일

· docker-compose는 'docker-compose.yml' 이름의 파일을 기본 설정 파일로 사용한다. 만약 다른 이름의 compose 파일을 사용할 경우 -f 옵션을 이용해 지정해준다.

· 들여쓰기는 공백 기호를 사용한다(탭 X).

· 주석은 # 기호로 시작한다.

 

먼저 예를 하나 살펴보면서 시작하자. ubuntu:18.04 이미지를 활성화하고 터미널 모드(docker run의 -it 옵션)로 실행하는 명령이다.

$> docker run --name docker-comp-ex -it ubuntu:18.04

 

docker-compose를 이용해서 같은 기능을 구현하려면 아래와 같이 docker-compose.yml 파일을 구성한다.

version: "3.3"
services:
 exercise:
  image: ubuntu:18.04
  container_name: "docker-comp-ex"
  stdin_open: true
  tty: true

 

위 스크립트 파일 위치에서 docker-compose up 명령을 실행하면 docker-compose는 현재 디렉토리의 docker-compose.yml 파일을 실행시킨다.

$> docker-compose up

<위 docker-compose.yml 실행 결과>

 

다시 다른 터미널을 하나 더 열고 실행 중인 컨테이너로 접속(attach)하면 쉘 모드를 사용할 수 있다.

다른 터미널 $> docker attach '컨테이너 ID'

<실행 중인 도커 컨테이너(d11f6ada05a8)에 접속>

 

예가 적절했는지 모르겠지만, 예의 요점은 docker-compose를 사용하면 명령어를 파일로 관리할 수 있다는 것이다.

※docker-compose는 보통 쉘 입력을 사용하는 인터랙티브 모드interactive mode로는 잘 사용하지 않는다.

 

docker-compose를 이용해서 실행시킨 컨테이너는 docker-compose down 명령어를 이용해서 종료할 수 있다.

$> docker-compose down

 

이번 포스팅에서는 docker-compose에 대해 간략히 소개하였다. 이어지는 포스팅에서 docker-compose.yml 파일의 기본적인 구조와 내용에 대해 살펴보도록 하자.

 

 

 

댓글