Simplify

Docker-compose 를 이용해 편하게 docker 쓰기 본문

Web & Server/Docker & Container

Docker-compose 를 이용해 편하게 docker 쓰기

Simplify - Jonghun 2019. 6. 13. 14:47

docker 명령어들은 복잡한 이미지를 얼마나 customizing 해서 환경변수등을 추가해서 사용하느냐에 따라 엄청나게 길어질 수 있습니다. 예를 들어 jenkins 같은 경우 기본적으로 아래 정도의 명령어를 이용해서 구동하게 됩니다. 

$ sudo docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

아마도 이런 과정이 귀찮으니, 위 명령어를 shell 로 만들어서 두고 사용하게 될 것 같습니다만, docker 특성상 사용하게 되는 명령어들이 많아, sudo 를 매번 적는 게 여간 귀찮은 것이 아닙니다.

 

이러한 분편함을 해소해 주는 것이 docker-compose 입니다. docker-compose는 parameter 로 설정된 위 정보들을 모두 docker-compose.yml 이르는 파일에 적게 하고(일종의 설정 파일), 이를 이용해서 docker를 실행해 줍니다. 이를 위해서는 docker 이외에도 docker-compose를 설치해야 합니다. 

 

 

필수사항

docker-compose 에는 다음의 필수사항이 있습니다.

  1. sudo 권한이 있는, root 가 아닌 사용자
  2. docker 설치

 

설치

 

1. current release 를 체크하고, 필요하다면 update 한다.

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

 

2. 아래 명령어로 권한 처리를 합니다.

$ sudo chmod +x /usr/local/bin/docker-compose

 

3. 버전 확인을 합니다. 

$ docker-compose --version

결과로 아래와 같이 나오면 됩니다.

jonghiphop@simplify:~$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
jonghiphop@simplify:~$

 

사용

 

1. docker-compose.yml 파일 생성

내가 docker 를 실행하고자 하는 폴더에 docker-compose.yml 파일을 생성합니다. 여기서는 mariaDB 에 대한 docker-compose.yml 파일을 예로 들겠습니다. 

version: '3.1'

services:
  maria:
    image: mariadb:latest
    container_name: "mariadb"
    restart: always
    ports:
      - "63306:3306"
    volumes:
      - ~/docker/mariadb/etc/mysql/conf.d:/etc/mysql/conf.d:ro
      - ~/docker/mariadb/var/lib/mysql:/var/lib/mysql
      - ~/docker/mariadb/var/log/maria:/var/log/maria
    environment:
      - MYSQL_ROOT_PASSWORD=???
      - TZ="Asia/Seoul"

 

2. 실행 및 재실행

실행하고자 하는 yml 파일이 있는 위치에서 아래 명령어를 입력합니다. 백그라운드에서 실행을 원하는 경우 -d 옵션을 추가합니다.

$ docker-compose up
$ docker-compose up -d

 

3. 확인

확인은 docker-compose 보다는 docker 자체 명령어로 하는 것이 직관적이라 그렇게 하고 있습니다.

$ docker ps -a

 

4. 중지 및 삭제

중지는 stop 파라미터를, 삭제는 rm 파라미터를 주가합니다. 여기서의 삭제는 당연히 image가 아니라 container 입니다. 역시 yml 파일이 있는 위치에서 아래 명령어를 입력합니다.

$ docker-compose stop
$ docker-compose rm 

 

 

 

출처 : https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-16-04

 

Comments