Docker Compose のインストール

読む時間の目安: 4 分

Docker Compose は macOS、Windows、64 ビット Linux で動作します。

前提条件

Docker Compose は重要な処理を Docker Engine に委ねています。 したがって Docker Engine がインストールされていることを確認します。 それはローカル、リモートいずれでも、設定次第で可能です。

  • Docker Desktop for Mac、Docker Desktop for Windows のようなデスクトップシステムにおいては、インストールの一部として Docker Compose が含まれています。

  • Linux システムではまず、 Docker 入手のページに説明されている各 OS 向けの Docker Engine をインストールします。 そしてこのページに戻り、Linux システム上での Compose のインストール手順に従います。

Compose をルートユーザー以外で起動するには、ルートユーザー以外による Docker の管理 を参照してください。

Compose のインストール

以下に示す手順を通して Mac、Windows、Windows Server 2016、Linux に Compose をインストールします。 またその他の方法として Python パッケージマネージャーpipを使う方法や、コンテナーとして Compose をインストール方法もあります。

別バージョンのインストール

以降に示す手順は Compose の現時点での最新安定版(v1.29.1)に基づいたものです。 これ以外のバージョンをインストールする場合は、記述されているリリース番号を、目的とするものに置き換えてください。 Compose のリリースは GitHub 上の Compose リポジトリのリリースページ においても一覧が示され利用可能です。 Compose のプレリリース版をインストールする場合は、プレリリース版のインストールの説明を参照してください。

macOS への Compose インストール

Docker Desktop for Mac には他の Docker アプリとともに Compose が含まれています。 したがって Mac ユーザーは Compose を個別にインストールする必要はありません。 インストール手順については Docker Desktop on Mac のインストール を参照してください。

Windows デスクトップへの Compose インストール

Docker Desktop for Windows には他の Docker アプリとともに Compose が含まれています。 したがって Windows ユーザーは Compose を個別にインストールする必要はありません。 インストール手順については Install Docker Desktop on Windows を参照してください。

Docker デーモンや Docker クライアントを Windows Server 上で直接起動している場合は、Windows Server のタブ内にある手順に従ってください。

Windows Server への Compose インストール

Docker デーモンや Docker クライアントを Microsoft Windows Server 上で直接起動している場合、および Docker Compose をインストールしたい場合は、以下の手順に従ってください。

  1. PowerShell を管理者権限で実行。 PowerShell アイコンを見つけ、右クリックメニューから管理者として実行を選びます。 このアプリによるデバイスへの変更の許可を問われたらはいをクリックします。

  2. GitHub では TLS1.2 が必要となるので、PowerShell において以下を実行します。

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    そして以下のコマンドを実行して Compose の現時点での最新版(v1.29.1)をダウンロードします。

    Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe
    

    メモ: Windows Server 2019 の場合は、Compose の実行パスとして$Env:ProgramFiles\Dockerを加えます。 このディレクトリはシステムのPATHに登録されるので、この後の手順におけるdocker-compose --versionコマンドが、他になにも設定せずに実行できるようになります。

    別バージョンの Compose をインストールする場合は、1.29.1の部分を、目的とするバージョンに置き換えてください。

  3. インストール結果をテストします。

    docker-compose --version
    
    docker-compose version 1.29.1, build 01110ad01
    

Linux システムへの Compose インストール

Linux の場合は、GitHub 上の Compose リポジトリのリリースページ から Docker Compose の実行バイナリをダウンロードします。 リンク先の手順では、端末画面上からcurlコマンドを使ってダウンロードを行います。 その手順は以下にも示します。

alpineでは以下に示す依存パッケージが必要です。 py-pippython3-devlibffi-devopenssl-devgcclibc-devrustcargomake

  1. 以下のコマンドを実行して Docker Compose の現時点での最新安定版をダウンロードします。

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

    別バージョンの Compose をインストールする場合は、1.29.1の部分を、目的とするバージョンに置き換えてください。

    curlを使ったインストールに問題がある場合は、上のタブにある その他のインストール を確認してください。

  2. 実行バイナリに対して実行権限を与えます。

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

    メモ: インストールした後にdocker-composeの実行に失敗する場合は、パスを確認してください。 /usr/binあるいはパス設定されているディレクトリへのシンボリックリンクを作る方法もあります。

    たとえば以下のとおりです。

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
  3. 必要に応じてbashzshシェルに対する コマンド補完 をインストールします。

  4. インストール結果をテストします。

    $ docker-compose --version
    docker-compose version 1.29.1, build 1110ad01
    

その他のインストール

pip を用いたインストール

alpineでは、以下に示す依存パッケージが必要です。 py-pippython3-devlibffi-devopenssl-devgcclibc-devrustcargomake

Compose はpipを使って pypi からインストールすることができます。 pipを使ったインストールでは virtualenv を用いることをお勧めします。 これは多くのオペレーティングシステムにおいて、python パッケージが docker-compose の依存パッケージと不整合を起こすことがあるからです。 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.29.1/run.sh -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

プレリリース版のインストール

プレリリース版を試してみたい方は GitHub 上の Compose リポジトリのリリースページ からリリース候補(release candidate)をダウンロードしてください。 リンク先の手順では、端末画面上からcurlコマンドを使って実行バイナリをダウンロードします。

マスターブランチからビルドされたプレリリース版もあります。 https://dl.bintray.com/docker-compose/master/ からダウンロードしてください。

プレリリース版では、正式リリース前に新機能を試すことができます。 ただし安定しているかどうかはわかりません。


アップグレード

Compose のバージョン 1.2 またはそれ以前からアップグレードを行う場合、アップグレードした後に既存のコンテナーは削除するか移行する必要があります。 Compose 1.3 からは Docker ラベルが導入されたためです。 このラベルとはコンテナーの追跡を行うものであり、古いコンテナーはこのラベルをつけて再生成する必要があります。

Docker ラベルを持っていないコンテナーであることが検出されると、Compose はそのようなコンテナーの実行を拒否するため利用することができません。 それまで使っていたコンテナーを引き続き利用したい場合(たとえばデータボリュームを用いてデータ保存をしている場合)、Compose 1.5.x を使って、以下のようなコマンドによりデータ移行を行うことができます。

docker-compose migrate-to-labels

コンテナーを維持しておく必要がないのであれば、削除するだけで構いません。 Compose は新しくコンテナーを生成してくれます。

docker container rm -f -v myapp_web_1 myapp_db_1 ...

アンインストール

curlを使って Docker Compose をインストールしていた場合は、次のようにしてアンインストールします。

sudo rm /usr/local/bin/docker-compose

pipを使って Docker Compose をインストールしていた場合は、次のようにしてアンインストールします。

pip uninstall docker-compose

「Permission denied」エラーが出たときは

上のコマンドのいずれかを実行したときに「Permission denied」エラーが発生したら、それはdocker-composeを削除するための適切な権限がないことが考えられます。 どうしても削除したいときは、上のコマンドの先頭にsudoをつけて、もう一度コマンドを実行してください。

次に読むものは

compose, orchestration, install, installation, docker, documentation