CentOS 用 Docker CE の入手

CentOS 用 Docker CE を利用するには、 動作条件に一致 するか確認してから、 Docker をインストール してください。

動作条件

Docker EE を利用する方は

Docker エンタープライズ版(Docker EE)のインストールは、 このページではなく CentOS 用 Docker EE 設定をご覧ください。

Docker EE の詳細を学ぶには、 Docker Enterprise Edition(英語) をご覧ください。

OS 動作条件

Docker CE をインストールするには、メンテナンスされている CentOS 7 が必要です。アーカイブされた(過去の)バージョンはサポートやテストを行っていません。

centos-extras リポジトリの有効化が必要です。このリポジトリはデフォルトでは有効ですが、もし無効にしている場合、 再度有効化 する必要があります。

古いバージョンのアンインストール

Docker の古いバージョンの名前は docker または docker-engine です。もしこれらがインストールされている場合は、関連する依存関係を含めてアンインストールします。

$ sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

yum で対象パッケージがインストールされていないと表示されれば、問題ありません。

イメージ、コンテナ、ボリューム、ネットワークは /var/lib/docker/ の中に保存されたままです。また、 Docker CE のパッケージは docker-ce と呼びます。

Docker CE のインストール

必要に応じて Docker CE のインストール方法を選べます。

  • ほどんどの利用者は Docker のリポジトリをセットアップし、インストールする方法です。インストールやアップグレード作業を簡単にします。こちらが推奨です。
  • 一部のユーザは RPM パッケージをダウンロードし、手動でのインストールや、更新の作業を完全に手動で行います。こちらは Docker をインターネットにアクセスできない領域でインストールしたい場合に便利です。
  • テストや開発環境のユーザでは、Docker のインストールを自動化された 便利なスクリプト を使えます。

リポジトリを使ったインストール

新しいホストマシン上に Docker CE を初めてインストールする前に、Docker リポジトリのセットアップが必要です。その後、リポジトリから Docker のインストールやアップグレードができます。

リポジトリのセットアップ

  1. 必要なパッケージをインストールします。 yum-utilsyum-config-manager ユーティリティを提供します。そして、 device-mapper-persistent-datalvm2devicemapper ストレージ・ドライバの使用に必要です。
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 以降のコマンドでは stable (安定版)リポジトリをセットアップします。もしも edgetesting リポジトリからビルドしたものをインストールしたい場合でも、常に stable リポジトリが必要です。
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. オプション : edgetesting リポジトリを有効化します。これらのリポジトリは docker.repo ファイルに含まれますが、デフォルトでは無効です。stable リポジトリと併用して有効化できます。
$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test

yum-config-manager コマンド実行時に --disable フラグを使えば、 edgetesting リポジトリを無効にできます。再び有効にするには --enable フラグを使います。以下のコマンドは edge リポジトリを無効化します。

$ sudo yum-config-manager --disable docker-ce-edge

注釈

Docker 17.06 以降、 stable リリースは edgetesting リポジトリにも送られます。

stable と edge チャンネルについて学ぶ

Docker CE のインストール

  1. yum パッケージ・インデックスを更新します。
$ sudo yum makecache fast

注意

複数の Docker リポジトリを有効にすると、 yum install または yum update コマンドでバージョン指定をしなければ、常に最新バージョンをインストールします。そのため、安定性が必要な場合には、適切ではない場合があります。

Docker リポジトリを追加後、パッケージ一覧の更新が初めての場合は、 GPG 鍵を受け入れるかどうかの確認と、鍵のフィンガープリント(fingerprint;指紋)を表示します。フィンガープリントが正しいものであると確認したら、鍵を受け入れます。鍵のフィンガープリントが 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 と一致するのを確認します。

Docker をインストールしますが、起動しません。 docker グループを追加します、グループに所属しているユーザはいません。

  1. プロダクション(本番向け)システムでは、Docker CE 最新版を使う代わりに、特定のバージョンをインストールすべきでしょう。利用可能なバージョンを一覧表示します。例では sort -r コマンドを使い、バージョン番号の結果を高いものから低いものへとソートします。また、表示を簡略化します。
$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            17.09.ce-1.el7.centos             docker-ce-stable

 こちらには有効なリポジトリを表示します。また、特定の CentOS バージョンのものを表示します(この例では .el7 が付いているバージョンを表示 )。インストールするバージョンを選択します。2列目はバージョンの文字列です。どのバージョンを指定する時も、文字列の前にハイフン記号が必要です。3列目はリポジトリ名です。ここにはパッケージがどのリポジトリを使うかを示し、パッケージ名には安定性とバージョン番号を表示します。特定のバージョンをインストールするには、パッケージ名にハイフン記号( - )でバージョン文字列を追加します。

注釈

バージョン文字列を指定するには、パッケージ名にハイフンを加え、その次にバージョン情報を書きます。先ほどの例では、正式なパッケージ名は docker-ce-17.09.0.ce になります。

$ sudo yum install docker-ce-<正式なバージョン名>
  1. Docker を起動します。
$ sudo systemctl start docker
  1. docker が正しくインストールされているのを確認するため、 hello-world イメージを実行します。
$ sudo docker run hello-world

このコマンドはテスト用イメージをダウンロードし、コンテナ内で実行します。コンテナを実行したら、情報を表示したあと終了します。

Docker CE をインストールし、実行しています。Docker コマンドの実行には sudo が必要です。 引き続き /engine/installation/linux/linux-postinstall から、特権のないユーザで Docker コマンドを実行できるようにしたり、他のオプション設定を進めます。

Docker CE のアップグレード

Docker CE をアップグレードするには インストール手順 に従い、インストールしたい新しいバージョンを入れてください。

パッケージからインストール

Docker CE のインストールに Docker のリポジトリが使えない場合、 .rpm ファイルをダウンロードし、手作業でインストールできます。Docker CE をアップグレードしたい場合は、新しいファイルのダウンロードが毎回必要です。

  1. https://download.docker.com/linux/centos/7/x86_64/stable/Packages/に移動し、インストールしたい Docker バージョンの .rpm ファイルをダウンロードします。

注釈

edge パッケージをインストールするには、URL 中の stable の文字を edge にします。 stable と edge チャンネルを学ぶにはこちら

  1. Docker CE をインストールするには、以下のパスの場所を Docker パッケージをダウンロードした場所に変更します。
$ sudo yum install /path/to/package.rpm
  1. Docker を起動します。
$ sudo systemctl start docker
  1. Docker CE が正しくインストールされているのを確認するため、 hello-world イメージを実行します。
$ sudo docker run hello-world

このコマンドはテスト用イメージをダウンロードし、コンテナ内で実行します。コンテナを実行したら、情報を表示したあと終了します。

Docker CE はインストールされ、実行しています。Docker コマンドの実行には sudo が必要です。 引き続き /engine/installation/linux/linux-postinstall から、特権のないユーザで Docker コマンドを実行できるようにしたり、他のオプション設定を進めます。

Docker CE のアップグレード

Docker CE をアップグレードするには、新しいパッケージ・ファイルをダウンロードし、インストール手順の yum -y install の代わりに yum -y upgrade を実行します。また、新しいファイルに置き換えます。

便利なスクリプトを使うインストール

Docker は開発環境に対して迅速かつ非対話的に Docker CE の安定版・テスト版をインストールするために、 get.docker.comtest.docker.com で便利なスクリプトを提供しています。このスクリプトのソースコードは docker-install リポジトリ にあります。 プロダクション環境でのスクリプトの利用は推奨しません 。また、利用前に、以下の潜在リスクがあるのを理解すべきでしょう。

  • スクリプトの実行には rootsudo 権限が必要です。そのため、スクリプトを実行する前に、調査と正常性に対して十分にご注意ください。
  • スクリプトは自動的に Linux ディストリビューションとバージョン、パッケージ管理システムの検出を試みます。また、スクリプトにはインストール時に何からしらパラメータを渡せません。このため、サポートされていない設定に至ったり、Docker が意図しない、あるいは皆さんの組織のガイドラインや標準から外れたりする場合があります。
  • スクリプトを実行すると、パッケージ・マネージャが示す依存関係や推奨パッケージを、すべて自動的にインストールします。これにより、ホストマシン上の設定によっては、非常に多くのパッケージや依存関係のインストールが行われる場合があります。
  • 既にホスト・マシン上で別の手法による Docker をインストール済みの環境では、この便利なスクリプトは使用しないでください。

次の例は Linux に Docker CE の最新安定版リリースのインストールに、 get.docker.com のスクリプトを使います。最新テスト版を使いたい場合は、代わりに test.docker.com を指定します。その場合はコマンド中の gettest に置き換えて実行します。

警告

スクリプトを実行する前に、インターネットからダウンロードしたスクリプトをご確認ください。

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

<output truncated>

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

これで Docker CE をインストールしました。 DEB をベースとしたディストリビューションでは、自動的に開始します。 RPM ベースのディストリビューションでは、適切な systemctlservice コマンドを使い、手動で実行する必要があります。メッセージが表示されているように、デフォルトでは root ではないユーザは Docker コマンドを実行できません。

便利なスクリプトを使った後の Docker アップグレード

便利なスクリプトを使って Docker をインストールしている場合は、パッケージ・マネージャをとして直接アップグレードを試みるべきでしょう。便利なスクリプトを再度実行する利点は何らありません。また、スクリプトの再実行により、ホストマシン上に既に追加されているリポジトリを再追加するため、何か問題となる可能性があります。

Docker CE のアンインストール

  1. Docker CE パッケージをアンインストールします。
$ sudo yum remove docker-ce
  1. ホスト上のイメージ、コンテナ、ボリューム、その他にカスタマイズした設定ファイルは自動的に削除されません。全てのイメージ、コンテナ、ボリュームを削除するには:
$ sudo rm -rf /var/lib/docker

編集した設定ファイルは全て手動で削除する必要があります。

次のステップ