バイナリをインストール

このページは、 Docker を様々な環境で動かそうとしている上級者向けの手順です。

以下に進む前に、まず、皆さんがお使いのディストリビューションに対応した Docker のパッケージ版が存在しているかどうか、ご確認ください。私たちは様々なディストリビューションに対応したパッケージを提供しています。対応は更に増え続けるでしょう。 j .. Check runtime dependencies

実行時の依存関係を確認

docker を適切に実行するには、以下のソフトウェアが実行時に必要です。

  • iptables バージョン 1.4 以上
  • Git バージョン 1.7 以上
  • procps (あるいは “ps” のように実行できるもの)
  • XZ Utils 4.9 以上
  • 適切にマウントされた cgroupfs 階層(単一の “cgroup” マウント・ポイントしかないものは 不完全 です。)

kernel 依存関係の確認

Docker をデーモン・モードで実行するには(サーバとして使うには)、特定のカーネルが必要です。詳細については、各ディストリビューションの インストール のページをご確認ください。

Docker を動かすには少なくとも Linux カーネル 3.10 が必要です。カーネルが 3.10 よりも低い場合は、Docker コンテナを実行するための機能が不足します。また、古いバージョンでは、特定条件下におけるデータの損失や、定期的なパニックが発生するバグが知られています。

Linux カーネルの推奨バージョンは 3.10 系の最新マイナーバージョン(3.x.y)(または最新の管理バージョン)です。常にカーネルを最新のマイナーバージョンにすることで、致命的なカーネルのバグが修正されるようにします。

警告

変更したカーネルやカーネル・パッケージをインストールすると、 Linux ディストリビューションのベンダーによってはサポート対象外になる場合があります。ディストリビューション上に変更したカーネルをインストールする前に、ベンダーに対して Docker をサポートしているかどうか確認をお願いします。

警告

ディストリビューションによっては、古すぎるか新しいカーネルと互換性が無いため、新しいカーネルのパッケージが提供されていない場合があります。

ただし、Docker をクライアント・モードとして使うのであれば、ほとんどの Linux カーネル上で実行可能です(たとえ OS X 上でビルドしていても!)。

可能であれば AppArmor と SELinux の有効化を

Linux ディストリビューションが AppArmor か SELinuxをサポートしているのであれば、どちらかをご利用ください。セキュリティの改善と、あらゆる種類の内部攻撃(exploits)から守るための助けとなります。推奨されるセキュリティ機構と詳細な使い方は、各ディストリビューションのドキュメントをご覧ください。

ディストリビューションによっては AppArmor や SELinux がデフォルトで有効になっていても、カーネルの最小動作条件(3.10以上)を満たさないかもしれません。カーネルを 3.10 や新しいものへ更新すると、そのシステムでは Docker の起動やコンテナを実行できないかもしれません。システムが提供する AppArmor や SELinux のユーザ・スペース・ユーティリティとカーネル間の非互換性により、Docker の実行ができなかったり、コンテナを起動できない等、コンテナが予期しない動作を起こす可能性があります。

警告

何らかのセキュリティ機構を有効にしている場合、Docker やコンテナが実行できようにするため無効化すべきではありません。無効化は環境のセキュリティを低下させ、システムはディストリビューション・ベンダからのサポートを受けられなくなります。さらに、極めて管理された環境においては、規則やセキュリティポリシー違反にもなるでしょう。

Docker Engine バイナリの入手

最新版や特定バージョンのバイナリをダウンロードできます。GitHub 上から安定リリース版の一覧を確認するには docker/docker リリース・ページ をご覧ください。MD5 と SHA256 ハッシュを取得するには、URL に対応する .md5 と .sha256 をご覧ください。

Linux バイナリの入手

Linux の最新バージョンは、以下の URL からダウンロードします。

https://get.docker.com/builds/Linux/i386/docker-latest.tgz
https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz

Linux 用の特定バージョンをダウンロードするには、次の URL パターンを使います。

https://get.docker.com/builds/Linux/i386/docker-<version>.tgz
https://get.docker.com/builds/Linux/x86_64/docker-<version>.tgz

例:

https://get.docker.com/builds/Linux/i386/docker-1.11.0.tgz
https://get.docker.com/builds/Linux/x86_64/docker-1.11.0.tgz

注釈

以下の手順は Docker Engine 1.11 以上を対象にしています。Engine 1.10 以下は単一のバイナリであり、インストール方法が異なります。バージョン 1.10 以下のインストール方法は、 1.10 ドキュメント をご覧ください。

Linux バイナリのインストール

ダウンロード後、アーカイブを展開します。現在の場所より下にある docker ディレクトリにバイナリを置きます。

$ tar -xvzf docker-latest.tgz

docker/
docker/docker-containerd-ctr
docker/docker
docker/docker-containerd
docker/docker-runc
docker/docker-containerd-shim

Engine は、これらバイナリをホスト上の $PATH の場所に置く必要があります。例えば、バイナリを /usr/bin にインストールするには、次のようにします。

$ mv docker/* /usr/bin/

注釈

既にホスト上で Engine をインストールしている場合は、インストール前に Engine を停止( killall docker )し、それから同じ場所にバイナリをインストールします。現在のインストール場所は dirname $(which docker) で確認できます。

Linux 上で engine デーモンを実行

Engine をデーモン・モードとして手動で実行できます:

$ sudo docker daemon &

デーモンを upstart や systemd のようなプロセス・マネージャを通して管理できるよう、GitHub リポジトリにはサンプルの init スクリプトがあります。スクリプトは contrib ディレクトリ をご覧ください。

Engine をデーモン・モードで実行する時の詳しい情報は、Engine コマンド・リファレンスの daemon コマンド をご覧ください。

Mac OS X バイナリの入手

Mac OS X ではクライアント用のバイナリが提供されています。docker デーモンは実行できません。Mac OS X の最新バージョンは、以下の URL からダウンロードします。

https://get.docker.com/builds/Darwin/x86_64/docker-latest.tgz

Mac OS X 用の特定バージョンをダウンロードするには、次の URL パターンを使います。

https://get.docker.com/builds/Darwin/x86_64/docker-<version>.tgz

例:

https://get.docker.com/builds/Darwin/x86_64/docker-1.11.0.tgz

ダウンロードしたアーカイブを展開するには、ダウンロードした .tgz をダブルクリックするか、コマンドライン上で tar -xvzf docker-1.11.0.tgz を実行します。クライアントのバイナリはファイルシステム上のあらゆる場所で実行できます。

Windows バイナリの入手

Windows クライアントのバイナリは、バージョン 1.9.1 以降をダウンロードできます。ただし、バイナリは 32 ビット(i386)のクライアントのみであり、docker デーモンを実行できません。以下の URL から 64 ビットのバイナリ(クライアントとデーモン)をダウンロードします。

https://get.docker.com/builds/Windows/i386/docker-latest.zip
https://get.docker.com/builds/Windows/x86_64/docker-latest.zip

Windows 用の特定バージョンをダウンロードするには、次の URL パターンを使います。

https://get.docker.com/builds/Windows/i386/docker-<version>.zip
https://get.docker.com/builds/Windows/x86_64/docker-<version>.zip

例:

https://get.docker.com/builds/Windows/i386/docker-1.11.0.zip
https://get.docker.com/builds/Windows/x86_64/docker-1.11.0.zip

注釈

以下の手順は Docker Engine 1.11 以上を対象にしています。Engine 1.10 以下は単一のバイナリであり、インストール方法が異なります。バージョン 1.10 以下のインストール方法は、 1.10 ドキュメント をご覧ください。

root 以外のアクセス

docker デーモンは常に root ユーザとして稼働します。そして、デフォルトの docker デーモンは TCP ポートのかわりに Unix ソケットをバインドします。この Unix ソケットの所有者は root のため、 sudo でアクセスする必要があります。

あなたが(あるいは Docker インストーラが) docker という名称の Unix グループを作成している場合は、デーモンを起動後、 docker グループに追加したユーザが docker デーモンの Unix ソケットを読み書きできるようになります。 docker デーモンは常に root ユーザとして実行する必要がありますが、docker グループに所属しているユーザであれば、 docker クライアント実行時に sudo コマンド実行が不要です。

警告

docker グループ(あるいは -G でグループを指定)は root と同等です。詳細は Docker デーモンが直面する攻撃 をご覧ください。

Docker Engine のアップグレード

手動でインストールした Docker をアップグレードするには、まず docker デーモンを停止します。

$ killall docker

以降は通常のインストール手順と同じです。