Docker CE の入手(CentOS 向け)¶
CentOS 用 Docker CE を始めるには、 前提条件を満たしているか を確認してから、 Docker をインストール してください。
前提条件¶
Docker EE を利用する方は¶
Docker エンタープライズ・エディション(Docker Enterprise Edition; EE)をインストールする場合は、 このページではなく Docer EE の入手(CentOS 向け) に進んでください。
Docker EE の詳細を学ぶには、 Docker エンタープライズ・エディション をご覧ください。
OS 要件¶
Docker CE をインストールするには、保守対象の CentOS 7 が必要です。 古いバージョンはサポートもテストも行っていません。
centos-extras
リポジトリを有効にすることが必要です。
このリポジトリはデフォルトでは有効になっていますが、もし無効にしている場合は、 もう一度有効に する必要があります。
古いバージョンのアンインストール¶
Docker のかつてのバージョンは、docker あるいは docker-engine と呼ばれていました。 これがインストールされている場合は、関連する依存パッケージも含めアンインストールしてください。
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
yum
を実行したときに、上のパッケージがインストールされていないと表示されれば OK です。
/var/lib/docker/
にはイメージ、コンテナ、ボリューム、ネットワークが含まれていて、それは保持されたまま残ります。
なお Docker CE パッケージは、今は docker-ce
と呼ばれます。
Docker CE のインストール¶
Docker CE のインストール方法はいくつかあります。 必要に応じて選んでください。
たいていのユーザは Docker のリポジトリをセットアップ して、そこからインストールしています。 インストールやアップグレードの作業が簡単だからです。 この方法をお勧めします。
ユーザの中には RPM パッケージをダウンロードし、手動でインストールしている方もいます。 アップグレードも完全に手動となります。 この方法は、インターネットにアクセスできない環境で Docker をインストールするような場合には有用です。
テスト環境や開発環境向けに、自動化された 便利なスクリプト を使って Docker のインストールを行うユーザもいます。
リポジトリを使ったインストール¶
新しいホストマシンに Docker CE を初めてインストールするときは、その前に Docker リポジトリをセットアップしておくことが必要です。 これを行った後に、リポジトリからの Docker のインストールやアップグレードができるようになります。
リポジトリのセットアップ¶
必要なパッケージをインストールします。
yum-utils
はyum-config-manager
ユーティリティを提供します。 またdevice-mapper-persistent-data
とlvm2
はdevicemapper
ストレージ・ドライバを利用するために必要です。$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
以下のコマンドを使って 安定版 (stable)リポジトリをセットアップします。 エッジ版 (edge)や テスト版 (test)リポジトリからインストールしたい場合があったとしても、安定版リポジトリは常に必要となります。
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
任意の作業 : エッジ版 (edge)リポジトリ、 テスト版 (test)リポジトリを有効にします。 このリポジトリは上記の
docker.repo
ファイルに含まれていますが、デフォルトで無効になっています。 このリポジトリを、 安定版 (stable)リポジトリとともに有効にします。
$ sudo yum-config-manager --enable docker-ce-edge$ sudo yum-config-manager --enable docker-ce-testエッジ版 リポジトリ、 テスト版 リポジトリを無効にするには
yum-config-manager
コマンドに--disable
フラグをつけて実行します。 以下のコマンドは エッジ版 リポジトリを無効にします。$ sudo yum-config-manager --disable docker-ce-edge注釈
Docker 17.06 以降、安定版リリースは エッジ版 リポジトリと テスト版 リポジトリにもプッシュされるようになりました。
安定版とエッジ版のチャネルについて学ぶ
Docker CE のインストール¶
Docker CE の最新版をインストールします。 あるいは次の手順に行って、特定のバージョンをインストールします。
$ sudo yum install docker-ce注意
Docker リポジトリを複数有効にしていて、バージョン指定をせずに
yum install
によるインストール、またはyum update
によるアップデートを行うと、入手可能な最新版がインストールされます。 安定した版が必要である場合には、適切でない場合があります。Docker リポジトリを追加した後に、パッケージインデックスの更新が初めて行なわれる場合には、GPG 鍵を受け入れるための確認が行われ、鍵の指紋(fingerprint)が表示されます。 鍵の指紋が間違いないものであることを確認したら、鍵を受け入れてください。 鍵の指紋は
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
です。Docker はインストールされましたが、まだ起動はしていません。 グループ
docker
が追加されていますが、このグループにはまだユーザが存在していない状態です。
本番環境では Docker CE の最新版を常に利用するようなことはせずに、特定バージョンをインストールするかもしれません。 そこで利用可能なバージョンの一覧を確認します。 以下の例では
sort -r
コマンドを使って、出力結果をバージョン番号によりソートします。 一覧は最新のものが上に並びます。 バージョンは簡略に表示されます。
注釈
以下の
yum list
コマンドではバイナリ・パッケージしか表示されません。 ソース・パッケージもともに表示する場合は、パッケージ名から.x86_64
の部分を除いてください。$ yum list docker-ce.x86_64 --showduplicates | sort -r docker-ce.x86_64 17.06.ce-1.el7.centos docker-ce-stableこの一覧内容は、どのリポジトリを有効にしているかによって変わります。 また利用している CentOS のバージョンに応じたものになります(この例では
.e17
というサフィックスにより示されるバージョンです)。 この中から必要なバージョンを選んでください。 第2項目はバージョン番号を示しています。 バージョンの指定はバージョン文字列をすべて指定してもよいですが、省略する場合であっても 少なくとも最初のハイフンまで は指定するようにしてください。 第3項目はリポジトリ名です。 パッケージがどのリポジトリによって提供されているかを示しており、また後ろにある文字から、その安定度合い(安定版かどうか)を見ることができます。 バージョンを指定してインストールする場合は、パッケージ名の次にハイフン(-
)をつけ、さらにバージョン文字列をつけたものを利用します。注釈
バージョン文字列は、パッケージ名に加えて、バージョンの最初にハイフンが出てくるところまでの文字列を使うだけで構いません。 上の例の場合、有効なパッケージ名は
docker-ce-17.06.ce
になります。$ sudo yum install docker-ce-<有効なバージョン文字列>
Docker を起動します。
$ sudo systemctl start docker
docker
が正しくインストールされているのを確認するため、hello-world
イメージを実行します。$ sudo docker run hello-world
このコマンドはテスト用イメージをダウンロードし、コンテナ内で実行します。 コンテナが起動すると、メッセージを表示して終了します。
Docker CE がインストールされ、実行できました。
Docker コマンドの実行には sudo
が必要になります。
続いて Linux のインストール後 に進み、非特権ユーザでも Docker コマンドが実行できるように、またその他の追加の設定について見ていきます。
Docker CE のアップグレード¶
Docker CE をアップグレードするには、まず sudo yum makecache fast
を実行してください。
次に インストール手順 に従って、インストールしたい新たなバージョンを選んでください。
パッケージからインストール¶
Docker リポジトリを利用した Docker インストールができない場合は、目的とするリリースの .rpm
ファイルをダウンロードして、手動でインストールする方法があります。この場合 Docker をアップグレードするには、毎回新たな .rpm
ファイルをダウンロードして利用することになります。
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ にアクセスして、インストールしたい
.rpm
ファイルをダウンロードします。
注釈
最新版 パッケージをインストールする場合は URL 内の
stable
をedge
に変更してください。 安定版と最新版チャンネルを学ぶにはこちら 。
Docker CE をインストールします。 以下に示すパス部分は、Docker パッケージをダウンロードしたパスに書き換えます。
$ sudo yum install /path/to/package.rpmDocker はインストールされましたが、まだ起動はしていません。 グループ
docker
が追加されていますが、このグループにはまだユーザが存在していない状態です。
Docker を起動します。
$ sudo systemctl start docker
docker
が正しくインストールされているのを確認するため、hello-world
イメージを実行します。
$ sudo docker run hello-worldこのコマンドはテスト用イメージをダウンロードし、コンテナ内で実行します。 コンテナが起動すると、メッセージを表示して終了します。
Docker CE がインストールされ、実行できました。
Docker コマンドの実行には sudo
が必要になります。
続いて Linux のインストール後 に進み、非特権ユーザでも Docker コマンドが実行できるように、またその他の追加の設定について見ていきます。
Docker CE のアップグレード¶
Docker CE をアップグレードする場合は、新たなパッケージ・ファイルをダウンロードして、インストール手順をもう一度行います。
その際には yum -y install
でなく yum -y upgrade
を実行します。
またパッケージには新しいものを指定します。
便利なスクリプトを使ったインストール¶
Docker では get.docker.com と test.docker.com において便利なスクリプトを提供しています。
これは Docker CE の安定版あるいはテスト版を、開発機にすばやく対話形式をとらずにインストールするものです。
このスクリプトのソースコードは docker-install
リポジトリ にあります。
このスクリプトを本番環境において利用することはお勧めしません。
またこのスクリプトの潜在的リスクについては、十分理解した上で利用してください。
スクリプトを実行するには
root
権限かsudo
が必要です。 したがって十分に内容を確認してからスクリプトを実行するようにしてください。スクリプトは自動的に情報取得を行い、利用している Linux ディストリビューション、そのバージョン、そしてパッケージ管理システムの設定を行います。 なおこのスクリプトは、インストール時にパラメータを受け渡すような設定はできないものになっています。 このことから時には、不適切な設定となる場合があります。 それは Docker の観点の場合もあれば、開発現場のガイドラインや標準に対しての場合もあります。
スクリプトはパッケージ・マネージャによって、依存パッケージや推奨パッケージをすべてインストールします。 その際にはインストールして良いかどうかを問いません。 したがって相当数のパッケージがインストールされることもあります。 これはホストマシンのその時点での設定によります。
ホスト・マシンに別の方法ですでに Docker をインストールしているのであれば、この便利スクリプトは使わないでください。
次の例は get.docker.com のスクリプトを使って、Linux 上に Docker CE の最新安定版をインストールするものです。
最新テスト版をインストールする場合は、 test.docker.com のスクリプトを利用してください。
テスト版の場合は、以下の各コマンドにおいて get
と書かれている箇所をすべて test
に置き換えてください。
警告
インターネットからスクリプトをダウンロードしたら、まず内容を十分確認してから実行してください。
$ 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
ベースのディストリビューションでは Docker が自動的に開始されます。
RPM
ベースの場合は手動での実行が必要となるため、 systemctl
か service
のいずれか適当なものを実行します。
上の出力メッセージに示されているように、デフォルトで非 root ユーザは Docker コマンドを実行できません。
便利なスクリプトを使った後の Docker アップグレード¶
便利スクリプトを使って Docker をインストールした場合、その後の Docker のアップグレードはパッケージ・マネージャを直接使って行ってください。 便利スクリプトは再実行する意味はありません。 ホストマシンにリポジトリが追加されているところに、このスクリプトを再実行したとすると、そのリポジトリを再度追加してしまうため、問題になることがあります。
Docker CE のアンインストール¶
Docker CE パッケージをアンインストールします。
$ sudo yum remove docker-ce
ホスト上のイメージ、コンテナ、ボリューム、カスタマイズした設定ファイルは自動的に削除されません。 イメージ、コンテナ、ボリュームをすべて削除するには、以下を実行します。
$ sudo rm -rf /var/lib/docker
編集した設定ファイルはすべて手動で削除する必要があります。