Docker Compose のインストール¶
Compose は macOS、Windows、64-bit Linux で実行可能です。
必要条件¶
Docker Compose は数々の動作を行うために Docker Engine を必要とします。したがって Docker Engine がインストール済であることを確認してください。設定状況に合わせてインストール先はローカルでもリモートでも構いません。
- Docker for Mac や Docker for Windows のようなデスクトップの場合、Docker Compose はその一部に含まれてすでにインストールされているはずです。
- Linux システムの場合はまずはじめに、Docker を手に入れるのページに示している各 OS ごとの Docker をインストールします。そしてここの手順に戻り Linux システム向けの Compose をインストールします。
Compose のインストール¶
Compose を Mac、Windows、Windows Server 2016、Linux にインストールする場合は、以下の手順に従ってください。他の方法として Python パッケージ・マネージャである pip
を使う方法や、コンテナとして Compose をインストールする方法もあります。
macOS における Compose のインストール¶
Docker for Mac と Docker Toolbox には、Compose も各種 Docker アプリもすべて含んでいます。したがって Mac ユーザは個別に Compose をインストールする必要はありません。Docker のインストール手順は以下となります。
- Docker for Mac の入手
- Docker Toolbox の入手 (古いシステム向け)
Windows における Compose のインストール¶
Docker for Windows と Docker Toolbox には、Compose も各種 Docker アプリもすべて含んでいます。したがって Windows ユーザは個別に Compose をインストールする必要はありません。Docker のインストール手順は以下となります。
- Docker for Windows の入手
- Docker Toolbox の入手 (古いシステム向け)
Docker Engine - Enterprise を使って Microsoft Windows Server 上において Docker デーモンやクライアントを 直接動かしている場合は、Docker Compose をインストールする必要があります。以下の3つの手順を進めてください。
- PowerShell を管理者権限で起動します。つまり PowerShell を見つけたら右クリックして 管理者として実行 を選びます。PowerShell がデバイスへの変更をしても良いかどうかを尋ねられたら Yes をクリックします。
PowerShell において以下のコマンドを実行して Docker Compose をダウンロードします。$dockerComposeVersion
の部分は、インストールしたい Compose のバージョンに置き換えてください。
Invoke-WebRequest "https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe
例えば Compose バージョン 1.16.1 をダウンロードするには、以下のコマンドを実行します。
Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.16.1/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe
重要
- ダウンロードコマンド内での Compose 最新リリース番号の利用
- すでに説明しているように、上に示したコマンドは一つの例ですから、すでに古いリリース番号になっているかもしれません。
コマンドの入力方法は上に示すものと同様に行ってください。
上の例をカット・アンド・ペーストして利用する場合は、必ずリリース番号を確認してください。
そして必要に応じて、
$dockerComposeVersion
の部分は必要としているリリース番号に書き換えてください。 Compose の各リリースは、GitHub 上にある Compose リポジトリのリリースページ から入手することができます。
- 実行モジュールを実行して Compose をインストールします。
Linux における Compose のインストール¶
Linux においては GitHub 上の Compose リポジトリのリリースページ から Docker Compose のバイナリをダウンロードします。リンク先にある手順に従い、端末から curl
コマンドを実行してバイナリをダウンロードします。この手順は以下にも示します。
- 以下のコマンドを実行して Docker Compose 最新版をダウンロードします。
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
重要
- ダウンロードコマンド内での Compose 最新リリース番号の利用
- 上に示したコマンドは一つの例ですから、すでに古いリリース番号になっているかもしれません。 最新版であるかどうかは GitHub 上にある Compose リポジトリのリリースページ を確認してください。
curl
でのインストールに問題がある場合は、 alternative-install-option をご覧ください。
- バイナリに対して実行権限を付与します。
sudo chmod +x /usr/local/bin/docker-compose
- オプションとして、
bash
やzsh
シェルの コマンドライン補完 をインストールします。
- インストールを確認します。
$ docker-compose --version
docker-compose version 1.16.1, build 1719ceb
その他のインストール¶
pip を利用したインストール¶
Compose は、pip
を使って pypi からインストールできます。インストールに pip
を使う場合、 virtualenv の利用をお奨めします。なぜなら多くのオペレーティング・システムにおいて、docker-compose が依存するパッケージ類が、システム内の python パッケージと競合することがあるためです。virtualenv チュートリアル(英語) をご覧ください。
pip install docker-compose
virtualenv を利用しない場合は以下を実行します。
sudo pip install docker-compose
注釈
pip バージョンは 6.0 以上が必要です。
コンテナとしてのインストール¶
Compose コンテナの中でも、小さな bash スクリプトのラッパーを通することが可能です。 Compose をコンテナとして実行・インストールするには、次のようにします。
$ sudo curl -L --fail https://github.com/docker/compose/releases/download/1.16.1/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
重要
- ダウンロードコマンド内での Compose 最新リリース番号の利用
- 上に示したコマンドは一つの例ですから、すでに古いリリース番号になっているかもしれません。 必ずリリース番号を確認してください。 そして必要に応じてリリース番号を書き換えてください。 Compose の各リリースは、GitHub 上にある Compose リポジトリのリリースページ から入手することができます。
マスターのビルド¶
プレリリース版を試してみたい方は、https://dl.bintray.com/docker-compose/master/ からバイナリをダウンロードできます。 プレリリース版を使えば、正式リリース前に新たな機能を試すことができます。ただし安定性に欠けるかもしれません。
アップグレード方法¶
バージョン 1.2 以前の Compose をアップグレードする場合には、アップグレードをした後にそれまで使っていたコンテナを削除するか移行する必要があります。Compose バージョン 1.3 以降においては、コンテナの追跡を行うための Docker ラベルというものが利用されるようになったからです。つまり古いコンテナはこのラベルをつけて再生成する必要があります。
Docker ラベルを持っていないコンテナであることが検出されると、Compose はそのようなコンテナの実行を拒否するため利用することができません。それまで使っていたコンテナを引き続き利用したい場合(たとえばデータボリュームを用いてデータ保存をしている場合)、Compose 1.5.x を使って、以下のようなコマンドによりデータ移行を行うことができます。
$ docker-compose migrate-to-labels
コンテナを維持しておく必要がないのであれば、削除するだけで構いません。Compose は新しくコンテナを生成してくれます。
$ docker rm -f -v myapp_web_1 myapp_db_1 ...
アンインストール方法¶
curl
を使って Docker Compose をインストールしていた場合は、次のようにしてアンインストールします。
$ rm /usr/local/bin/docker-compose
pip
を使って Docker Compose をインストールしていた場合は、次のようにしてアンインストールします。
$ pip uninstall docker-compose
注釈
- "Permission denied" エラーが出たときは
- 上のコマンドのいずれかを実行したときに "Permission denied" エラーが発生したら、それは
docker-compose
を削除するための適切な権限がないことが考えられます。どうしても削除したいときは、上のコマンドの先頭にsudo
をつけて、もう一度コマンドを実行してください。