dockerマルチコンテナ管理——Docker Component

8237 ワード

Dockerは、ユーザーがテンプレート(YAML形式)で関連するアプリケーションコンテナのセットを定義できるコンテナ編成ツールを提供します.このコンテナのセットは、構成テンプレートの「–link」などのパラメータに基づいています.起動の優先度を自動的にソートし、単純に「docker-compose up」を実行すると、同じサービス内の複数のコンテナを順次作成して起動できます.
インストール
方法一:githubから直接ダウンロードすればいい.前提はDockerをインストールし、バージョンは1.9.1以上である.
Note that Compose 1.8.0 requires Docker Engine 1.10.0 or later for version 2 of the Compose File format, and Docker Engine 1.9.1 or later for version 1.
curl -L https://github.com/docker/compose/releases/download/1.19.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

実際の動作中、この要求アドレスは404に戻り、インストールに失敗した.
pipまたは公式サイトのrun.shスクリプトでインストールすることもできます
方法2:pip方式でインストールする.
centosインストールpipコマンドは次のとおりです.
# yum -y install epel-release
# yum install python-pip
# pip install --upgrade pip

ubuntuインストールPipコマンドは次のとおりです.
$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv 

pipのインストールが完了したら、composeをインストールします.
pip install docker-compose

コマンドでインストールが成功したかどうかを確認します.
docker-compose

docker composeバージョンの表示
docker-compose -v

問題レコード
ubuntuはcurl方式でdocker 18.01.0-ceバージョンをインストールしたため、上記の方法でdocker composeを直接インストールすることに一度に成功した.
root@lei-VirtualBox:/# docker --version
Docker version 18.01.0-ce, build 03596f5
root@lei-VirtualBox:/# 
root@lei-VirtualBox:/# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9

centosのインストール中に問題が発生しました.yumインストールのデフォルトバージョン1.12.0 dockerを使用して、上記のpip方式でdocker composeをインストールする場合、docker-composeエラーを実行します.
[root@localhost ~]# docker-compose
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 7, in <module>
    from compose.cli.main import main
  File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 17, in <module>
    import docker
  File "/usr/lib/python2.7/site-packages/docker/__init__.py", line 2, in <module>
    from .api import APIClient
  File "/usr/lib/python2.7/site-packages/docker/api/__init__.py", line 2, in <module>
    from .client import APIClient
  File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 9, in <module>
    import websocket
  File "/usr/lib/python2.7/site-packages/websocket/__init__.py", line 23, in <module>
    from ._app import WebSocketApp
  File "/usr/lib/python2.7/site-packages/websocket/_app.py", line 35, in <module>
    from ._core import WebSocket, getdefaulttimeout
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 33, in <module>
    from ._handshake import *
  File "/usr/lib/python2.7/site-packages/websocket/_handshake.py", line 30, in <module>
    from ._http import *
  File "/usr/lib/python2.7/site-packages/websocket/_http.py", line 33, in <module>
    from ._url import *
  File "/usr/lib/python2.7/site-packages/websocket/_url.py", line 27, in <module>
    from six.moves.urllib.parse import urlparse
ImportError: No module named urllib.parse

この場合の解決策は以下の通りである(原因を理解していない):
pip install docker_pycreds

composeバージョンを再度表示し、問題が修正されました.
[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6

[root@localhost ~]# docker-compose -v
docker-compose version 1.19.0, build 9e633ef