2019.05.01 - docker container volume 옵션을 활용해서 data는 그대로 둔 채 postgres 버전업 하기, Docker compose 개론
postgres 9.6.1, postgres 9.6.2 설치
docker container run -d --name psql -v psql:/usr/lib/postgres/data postgres:9.6.1
-> postgres 9.6.1을 run하는데 이 때 사용하는 볼륨에 psql이라는 이름을 붙여 줌.
docker logs psql
-> log 체크
docker container run -d --name psql2 -v psql:/usr/lib/postgres/data postgres:9.6.2
-> psql이라는 볼륨을 붙여서 postgres 9.6.2를 run함
docker volume, bind mounting 에 관해서는.. 호스트의 파일을 그대로 이용해서 도커를 실행시킬 수 있다는 것이 장점.
DOCKER COMPOSE
docker compose template
version: '3.1' # if no version is specificed then v1 is assumed. Recommend v2 minimum
services: # containers. same as docker run
servicename: # a friendly name. this is also DNS name inside network
image: # Optional if you use build:
command: # Optional, replace the default CMD specified by the image
environment: # Optional, same as -e in docker run
volumes: # Optional, same as -v in docker run
servicename2:
volumes: # Optional, same as docker volume create
networks: # Optional, same as docker network create
version : '2'
services:
drupal:
image: drupal
ports:
- '8080:80'
volumes:
- drupal-modules:/var/www/html/modules
psql:
image: postgres:9.6.1
environment:
- POSTGRES_PASSWORD=helloworld
volumes:
drupal-modules:
docker compose는 말 그대로 docker container를 run 하기 위한 일종의 조립 레시피와 같다. 이 전에는 docker container run -p 80:80 --name something -e KEY=VALUE nginx
^ 이런 식으로 container를 실행시켰다면 이제는 compose 파일을 통해 여러개의 컨테이너를 실행하며 네트워크, 볼륨도 같이 설정할 수 있다.
컨테이너간의 의존성도 같이 설정하여 하나의 컨테이너가 다른 컨테이너에 의존한다면 의존 되는 컨테이너도 같이 실행할 수 있다.
compose 파일은 config로 많이 사용하는 yaml이 있고 로컬환경이나 테스트를 위해서는 docker-compose라는 CLI 툴을 사용하기도 한다.
docker-compose는 버전이 있다. 각각의 버전마다 설정할 수 있는 값들이 추가되었기 때문에 최소 2 이상의 버전을 사용하는 것이 좋다.
docker container run -d --name psql -v psql:/usr/lib/postgres/data postgres:9.6.1
-> postgres 9.6.1을 run하는데 이 때 사용하는 볼륨에 psql이라는 이름을 붙여 줌.
docker logs psql
-> log 체크
docker container run -d --name psql2 -v psql:/usr/lib/postgres/data postgres:9.6.2
-> psql이라는 볼륨을 붙여서 postgres 9.6.2를 run함
docker volume, bind mounting 에 관해서는.. 호스트의 파일을 그대로 이용해서 도커를 실행시킬 수 있다는 것이 장점.
DOCKER COMPOSE
docker compose template
version: '3.1' # if no version is specificed then v1 is assumed. Recommend v2 minimum
services: # containers. same as docker run
servicename: # a friendly name. this is also DNS name inside network
image: # Optional if you use build:
command: # Optional, replace the default CMD specified by the image
environment: # Optional, same as -e in docker run
volumes: # Optional, same as -v in docker run
servicename2:
volumes: # Optional, same as docker volume create
networks: # Optional, same as docker network create
services:
drupal:
image: drupal
ports:
- '8080:80'
volumes:
- drupal-modules:/var/www/html/modules
psql:
image: postgres:9.6.1
environment:
- POSTGRES_PASSWORD=helloworld
volumes:
drupal-modules:
docker compose는 말 그대로 docker container를 run 하기 위한 일종의 조립 레시피와 같다. 이 전에는 docker container run -p 80:80 --name something -e KEY=VALUE nginx
^ 이런 식으로 container를 실행시켰다면 이제는 compose 파일을 통해 여러개의 컨테이너를 실행하며 네트워크, 볼륨도 같이 설정할 수 있다.
컨테이너간의 의존성도 같이 설정하여 하나의 컨테이너가 다른 컨테이너에 의존한다면 의존 되는 컨테이너도 같이 실행할 수 있다.
compose 파일은 config로 많이 사용하는 yaml이 있고 로컬환경이나 테스트를 위해서는 docker-compose라는 CLI 툴을 사용하기도 한다.
docker-compose는 버전이 있다. 각각의 버전마다 설정할 수 있는 값들이 추가되었기 때문에 최소 2 이상의 버전을 사용하는 것이 좋다.
댓글
댓글 쓰기