디지털 양피지/Docker2017. 6. 29. 11:07


Docker Compose


VxLan을 사용하여 물리적으로 떨어진 가상머신과 통신한다. Docker 도 VxLan을 사용하여 통신.

 - 상단의 가상 네트워크를 오버레이 네트워크라하고 물리적인 레거시 네트워크를 언더레이라고 한다.

 - Overlay통신을 위해서 Service Discovery을 사용하고 Underlay 통신을 위해 Bridge를 사용한다.



- Overlay는 VxLan 기술을 사용한다.

 


Image result for Vxlan



- Compose는 동일 호스트에서 여러개 서비스를 배포해서 사용할때 사용

- WebService 관점에서 몇개의 컨테이너가 같이 움직일 수 있다. 단, 호스트 하나에 있어야 한다.

- Swarm은 멀티 호스트로 여러개의 컨테이너를 하나처럼 관리한다.

- Compose의 새로운 개념이 하나 더 나왔는데 Stack 이라는 개념이다.

- 묶음 단위로 여러 호스트에 배포 할 수 있다.

- YAML을 가지고 배포


* 설치

#curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 


#chmod +x /usr/local/bin/docker-compose



예제> https://docs.docker.com/compose/wordpress/


* YAML(YAML Ain't Markup Language)


* Docker Compose YAML 파일

docker-compose up 으로 실행

 - compose 파일의 기본 경로와 이름: 현재 디렉토리의 docker-compose.yml (-f 옵션 사용 가능)

 - 


- docker run -p 80:80 nginx를 yaml로 만들어보자.

version:'2'

service:

   web:

      image:nginx

      port:

         - "80:80" 

 

- docker-compose ps 명령은 해당 프로젝트 폴더에서 해야 한다.


* build 

빌스시간에 적용할 구성 옵션

build: ./dir

build:

   context: ./dir     //dockerfile directory

   dockerfile:Dockerfile-alternate     // dockerfile 이름

   args:

      buildno: 1


* context는 path 등 사용.

* image: image이름과 tag


* deploy : version 3에서만 사용

 - swarm을 구성하는데 사용



replicated: replica의 개수에 따라 docker 에 적용

 - replica 6 에 호스트가 3개이면 호스트에 2개씩 배포

global: 모든 호스트에 하나씩 배포


* placement: 키-밸류가 맵핑이 되는 놈만 배포


* Update_config



* secrets는 swarm mode에서만 지원


* docker-compose down하면 제거 한다. (volume은 안지운다.)



* 특정 service만 먼저 올릴수도 있다.


* 특정 service 만 시작/정지 시킬 수도 있다. 

* scale하면 port가 맵핑되어 있어 안된다.

* db 는 port 맵핑이 없어 된다.


* Compose 파일 확장하기

- 2개 파일을 실행할 수 있다.

- 새로운 compose 파일이 필요하면 2번째 파일을 확장한다.

- 없는건 머지, 있으면 2번째 파일이 우선권을 가진다.

 # docker-compose -f docker-compose.yml -f docker-compose-prod.yml up

 - 파일이 두개이면 docker-compose.yml과 docker-compose.override.yml로 지정하면 자동으로 머지 한다.


* config 옵션을 사용하여 전체 결과를 미리 알아볼 수 있다.

 

 # docker-compose -f docker-compose.yml -f docker-compose-prod.yml config



* Docker 스택과 DAB(distributed application bundles)

#docker-compose bundle 


자동으로 변환해준다.

* docker stack을 사용하여 swarm 의 compose를 배포 할 수 있다.

 - swarm mode가 on 되어 있어야 한다.



'디지털 양피지 > Docker' 카테고리의 다른 글

6. Kubernetes  (0) 2017.06.30
5. Docker Swarm  (0) 2017.06.29
4. Docker 네트워킹  (0) 2017.06.28
4. 컨테이너 스토리지  (0) 2017.06.28
4. 컨테이너 관리  (0) 2017.06.28
Posted by 빨간 양말