Docker Component導入サービス


[toc]
Docker Component導入サービス
需要分析:
もし今私たちの手にたくさんの容器があれば、各容器は各サービスに対応して、nginx容器、redis容器、mysql容器などがあります.今、私たちはロット量子化の管理、ロット起動、停止、再起動などの操作が必要です.
docker composeは、linuxのshellスクリプトと同様に、コンテナの起動、停止、再起動などの操作を迅速かつ効率的に管理できます.yaml構文に基づいて、アプリケーションのアーキテクチャ、例えばミラー、データボリューム、ネットワークモード、リスニングポートなどの情報を記述することができます.1つのcomposeファイルで複数のコンテナのアプリケーション(jumpserverなど)を定義し、composeを使用してアプリケーションを起動できます.
composeのインストール方法は次のとおりです.
ダウンロードしたファイルは/usr/local/bin/の下に置いて使いやすいです
curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod 755 !$

docker-compose version       

ComponentはVersion 1とVersion 2を区別する(Component 1.6.0+,Docker Engine 1.10.0+).
Version 2は、より多くの命令をサポートします.Version 1はバージョンデフォルトが「version 1」であることを宣言していません.Version 1は将来廃棄されます.
[root@xavi ~]# docker-compose version
-bash: /usr/local/bin/docker-compose:     
[root@xavi ~]# chmod 777 /usr/local/bin/docker-compose
[root@xavi ~]# docker-compose version
docker-compose version 1.17.0-rc1, build a0f95af
docker-py version: 2.5.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

docker composeマネージャの定義
[root@xavi ~]# vim docker-compose.yml

version: "2"
services:
  app1:
    image: centos6_x64
    ports:
      - "8080:80"
    networks:
      - "net1"
    volumes: //   
      - /data/:/data
  app2:
    image: centos_nginx_n
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd
networks:
  net1:
    driver: bridge
  net2:
    driver: bridge

詳細:
version: "2"    //  2  
services:       //          
  app1:         //app1      1   
    image: centos     //images   ,          
    ports:          //    
      - "8080:80"       //     8080     80  
    networks:       //  (   bridge  )
      - "net1"      //     net1(      pipwork   ?   none  )
    volumes:        //-v     
      - /data/:/data        //    ,   data          
  app2:         //   2     
    image: centos_nginx //docker images      images
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd     //     BUG          ,        
networks:
  net1:     //     
    driver: bridge      //      
  net2:
    driver: bridge

検査テスト:コンテナの起動
[root@xavi ~]# docker-compose up -d
Creating network "root_net2" with driver "bridge"
Creating network "root_net1" with driver "bridge"
Pulling app2 (centos_nginx_n:latest)...
ERROR: pull access denied for centos_nginx_n, repository does not exist or may require 'docker login'

エラーを報告、ミラーが存在しない、メタ編集ファイルを修正
[root@xavi ~]# docker-compose up -d
Creating root_app2_1 ... 
Creating root_app1_1 ... 
Creating root_app2_1
Creating root_app1_1 ... done

docker-composeヘルプの表示
docker-compose --help

docker-compose構文のリファレンスドキュメントについてhttp://www.web3.xin/index/article/182.html
[root@xavi ~]# docker-compose ps
   Name             Command         State    Ports 
---------------------------------------------------
root_app1_1   /bin/bash             Exit 0         
root_app2_1   tail -f /etc/passwd   Up       80/tcp

docker composeマネージャを定義します.つまりymlファイルを編集し、LNMPのサービスnginx、php、mysqlを3つのコンテナに分けることができます.
nginxの下のlinks:別名を作ってphpにアクセスしやすい