Cloud/Docker

컨테이너 업데이트와 Docker Compose

jinmc 2020. 12. 10. 11:27
반응형

출처 : subicura.com/2017/01/19/docker-guide-for-beginners-2.html

 

Container Update

 

지금까지 도커를 왜 사용하는지, 도커가 왜 좋은지, 그리고 도커의 사용방법에 대해서 알아보았습니다.

하지만 도커가 이미지에서 컨테이너를 만드는 방법이라면, 이미지에서 컨테이너를 만들때마다 Fresh한 컨테이너가 계속 생성될 텐데, 그 데이터는 어떡하나요? 

 

 

이를 방지하기 위해 쌓아놨던 데이터는 AWS S3같은 스토리지에 저장하거나, 아님 호스트의 데이터 볼륨을 이용하여 저장하여야 합니다.

이를 위해 run 명령어에 -v 를 추가해서, 추가해줍니다.

 

# before
docker run -d -p 3306:3306 \
  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql \
  mysql:5.7

# after
docker run -d -p 3306:3306 \
  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql \
  -v /my/own/datadir:/var/lib/mysql \ # <- volume mount
  mysql:5.7

 

Docker Compose

Docker Compose는 여러가지 설정값들을 yaml 파일 형식으로 저장해서 관리하는 툴입니다.

Docker for Mac이나 Docker for Windows를 설치했다면 자동으로 설치되고, 리눅스의 경우 다음을 사용하여 설치합니다.

 

curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# test
docker-compose version

그리고 docker-compose 파일을 작성합니다.

docker-compose파일의 문법은 다음에 알아보도록 하겠습니다.

 

version: '2'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - wp_data:/var/www/html
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:
    wp_data:

이후에 docker-compose up 을 실행합니다.

물론 나중에 설정공부를 더 해야겠지만, docker-compose로 손쉽게 설정저장을 할 수 있는 부분은 

긍정적인 부분입니다.

반응형