Docker Engine 20.10.2をCentOS 7.7へインストール
目次
概要
CentOS 7.7の標準のYUMリポジトリからインストール可能なDockerのバージョンが1.13.1と古かったので、 Dockerの公式サイト(docker.com)のProduct manualsに沿って2021/01/28時点で最新のバージョン20.10.2をインストールしました。
これまでバージョン1.13.1でも不自由なく使えてたのですが、Docker関連処理の自動化に当たり、 docker login の --password-stdin が使いたくなり、これが1.13.1では使えなかったので最新バージョンに入れ替えました。
構成
サーバ・ハードウェア構成
サーバ環境はAWS(Amazon Web Services)のEC2インスタンスを利用しました。 参考までにサーバのスペックは以下のとおりです。
項目 | 内容 |
---|---|
AMI ID | ami-06a46da680048c8ae |
AMI 名 | CentOS Linux 7 x86_64 HVM EBS ENA 2002_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-0042af67f8e4dcc20.4 |
インスタンスタイプ | t3.medium |
vCPU | 2 |
メモリ | 4GiB |
ディスク | SSD 80GiB |
リージョン | アジアパシフィック (東京) |
サーバ・ソフトウェア構成
OS
CentOS Linux release 7.7.1908 (Core)
パッケージ
- yum-utils-1.1.31-54.el7_8.noarch.rpm
- docker-ce-20.10.2-3.el7.x86_64.rpm
- docker-ce-cli-20.10.2-3.el7.x86_64.rpm
- containerd.io-1.4.3-3.1.el7.x86_64.rpm
環境構築
インストール
旧バージョンのDockerのアンインストール
既に古いバージョンのDockerがインストールされている場合は先にアンインストールします。 なお、アンインストールしても旧バージョンで保持していたローカルのDockerイメージは削除されず、 新しいバージョンのDockerインストール後に継続利用できました。 ただし動作保証されているのかまでは確認していませんが私の利用範囲では特に問題は出ていません。
# yum -y remove docker docker-common docker-client Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. Resolving Dependencies --> Running transaction check ---> Package docker.x86_64 2:1.13.1-203.git0be3e21.el7.centos will be erased ---> Package docker-client.x86_64 2:1.13.1-203.git0be3e21.el7.centos will be erased ---> Package docker-common.x86_64 2:1.13.1-203.git0be3e21.el7.centos will be erased --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Removing: docker x86_64 2:1.13.1-203.git0be3e21.el7.centos @extras 65 M docker-client x86_64 2:1.13.1-203.git0be3e21.el7.centos @extras 13 M docker-common x86_64 2:1.13.1-203.git0be3e21.el7.centos @extras 4.4 k Transaction Summary ======================================================================================================================== Remove 3 Packages Installed size: 77 M Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : 2:docker-1.13.1-203.git0be3e21.el7.centos.x86_64 1/3 warning: /etc/sysconfig/docker-storage saved as /etc/sysconfig/docker-storage.rpmsave Erasing : 2:docker-client-1.13.1-203.git0be3e21.el7.centos.x86_64 2/3 Erasing : 2:docker-common-1.13.1-203.git0be3e21.el7.centos.x86_64 3/3 Verifying : 2:docker-common-1.13.1-203.git0be3e21.el7.centos.x86_64 1/3 Verifying : 2:docker-1.13.1-203.git0be3e21.el7.centos.x86_64 2/3 Verifying : 2:docker-client-1.13.1-203.git0be3e21.el7.centos.x86_64 3/3 base/7/x86_64 | 3.6 kB 00:00:00 epel/x86_64/metalink | 9.4 kB 00:00:00 extras/7/x86_64 | 2.9 kB 00:00:00 jenkins | 2.9 kB 00:00:00 updates/7/x86_64 | 2.9 kB 00:00:00 Removed: docker.x86_64 2:1.13.1-203.git0be3e21.el7.centos docker-client.x86_64 2:1.13.1-203.git0be3e21.el7.centos docker-common.x86_64 2:1.13.1-203.git0be3e21.el7.centos Complete!
yum-utilsパッケージのインストール
DockerのYUMリポジトリをコマンドで登録できるようにするために、 事前準備としてyum-utilsパッケージをインストールします。
# yum -y install yum-utils Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 9.5 kB 00:00:00 * base: d36uatko69830t.cloudfront.net * epel: nrt.edge.kernel.org * extras: d36uatko69830t.cloudfront.net * updates: d36uatko69830t.cloudfront.net base | 3.6 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/4): epel/x86_64/group_gz | 95 kB 00:00:04 (2/4): epel/x86_64/updateinfo | 1.0 MB 00:00:01 (3/4): updates/7/x86_64/primary_db | 4.7 MB 00:00:00 (4/4): epel/x86_64/primary_db | 6.9 MB 00:00:01 Resolving Dependencies --> Running transaction check ---> Package yum-utils.noarch 0:1.1.31-52.el7 will be updated ---> Package yum-utils.noarch 0:1.1.31-54.el7_8 will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Updating: yum-utils noarch 1.1.31-54.el7_8 base 122 k Transaction Summary ======================================================================================================================== Upgrade 1 Package Total download size: 122 k Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. yum-utils-1.1.31-54.el7_8.noarch.rpm | 122 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : yum-utils-1.1.31-54.el7_8.noarch 1/2 Cleanup : yum-utils-1.1.31-52.el7.noarch 2/2 Verifying : yum-utils-1.1.31-54.el7_8.noarch 1/2 Verifying : yum-utils-1.1.31-52.el7.noarch 2/2 Updated: yum-utils.noarch 0:1.1.31-54.el7_8 Complete!
DockerのYUMリポジトリの登録
DockerのYUMリポジトリを登録して yum コマンドで最新のDockerをインストールできるようにします。
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Loaded plugins: fastestmirror adding repo from: https://download.docker.com/linux/centos/docker-ce.repo grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo
Docker Engineのインストール
yumコマンドでDocker Engineをインストールします。 インストールに指定するパッケージは3つです。
# yum -y install docker-ce docker-ce-cli containerd.io Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: d36uatko69830t.cloudfront.net * epel: nrt.edge.kernel.org * extras: d36uatko69830t.cloudfront.net * updates: d36uatko69830t.cloudfront.net docker-ce-stable | 3.5 kB 00:00:00 (1/2): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00 (2/2): docker-ce-stable/7/x86_64/primary_db | 52 kB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package containerd.io.x86_64 0:1.4.3-3.1.el7 will be installed --> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.4.3-3.1.el7.x86_64 ---> Package docker-ce.x86_64 3:20.10.2-3.el7 will be installed --> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-20.10.2-3.el7.x86_64 ---> Package docker-ce-cli.x86_64 1:20.10.2-3.el7 will be installed --> Running transaction check ---> Package container-selinux.noarch 2:2.119.2-1.911c772.el7_8 will be installed ---> Package docker-ce-rootless-extras.x86_64 0:20.10.2-3.el7 will be installed --> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64 --> Processing Dependency: slirp4netns >= 0.4 for package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64 --> Running transaction check ---> Package fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 will be installed --> Processing Dependency: libfuse3.so.3(FUSE_3.2)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64 --> Processing Dependency: libfuse3.so.3(FUSE_3.0)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64 --> Processing Dependency: libfuse3.so.3()(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64 ---> Package slirp4netns.x86_64 0:0.4.3-4.el7_8 will be installed --> Running transaction check ---> Package fuse3-libs.x86_64 0:3.6.1-4.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: containerd.io x86_64 1.4.3-3.1.el7 docker-ce-stable 33 M docker-ce x86_64 3:20.10.2-3.el7 docker-ce-stable 27 M docker-ce-cli x86_64 1:20.10.2-3.el7 docker-ce-stable 33 M Installing for dependencies: container-selinux noarch 2:2.119.2-1.911c772.el7_8 extras 40 k docker-ce-rootless-extras x86_64 20.10.2-3.el7 docker-ce-stable 9.0 M fuse-overlayfs x86_64 0.7.2-6.el7_8 extras 54 k fuse3-libs x86_64 3.6.1-4.el7 extras 82 k slirp4netns x86_64 0.4.3-4.el7_8 extras 81 k Transaction Summary ======================================================================================================================== Install 3 Packages (+5 Dependent packages) Total download size: 102 M Installed size: 423 M Downloading packages: (1/8): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm | 40 kB 00:00:00 warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY Public key for containerd.io-1.4.3-3.1.el7.x86_64.rpm is not installed (2/8): containerd.io-1.4.3-3.1.el7.x86_64.rpm | 33 MB 00:00:00 (3/8): docker-ce-20.10.2-3.el7.x86_64.rpm | 27 MB 00:00:00 (4/8): fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm | 54 kB 00:00:00 (5/8): slirp4netns-0.4.3-4.el7_8.x86_64.rpm | 81 kB 00:00:00 (6/8): docker-ce-rootless-extras-20.10.2-3.el7.x86_64.rpm | 9.0 MB 00:00:00 (7/8): docker-ce-cli-20.10.2-3.el7.x86_64.rpm | 33 MB 00:00:00 (8/8): fuse3-libs-3.6.1-4.el7.x86_64.rpm | 82 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------ Total 101 MB/s | 102 MB 00:00:01 Retrieving key from https://download.docker.com/linux/centos/gpg Importing GPG key 0x621E9F35: Userid : "Docker Release (CE rpm) <docker@docker.com>" Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35 From : https://download.docker.com/linux/centos/gpg Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch 1/8 setsebool: SELinux is disabled. Installing : containerd.io-1.4.3-3.1.el7.x86_64 2/8 Installing : slirp4netns-0.4.3-4.el7_8.x86_64 3/8 Installing : 1:docker-ce-cli-20.10.2-3.el7.x86_64 4/8 Installing : fuse3-libs-3.6.1-4.el7.x86_64 5/8 Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64 6/8 Installing : 3:docker-ce-20.10.2-3.el7.x86_64 7/8 Installing : docker-ce-rootless-extras-20.10.2-3.el7.x86_64 8/8 Verifying : fuse3-libs-3.6.1-4.el7.x86_64 1/8 Verifying : 3:docker-ce-20.10.2-3.el7.x86_64 2/8 Verifying : fuse-overlayfs-0.7.2-6.el7_8.x86_64 3/8 Verifying : 1:docker-ce-cli-20.10.2-3.el7.x86_64 4/8 Verifying : slirp4netns-0.4.3-4.el7_8.x86_64 5/8 Verifying : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch 6/8 Verifying : containerd.io-1.4.3-3.1.el7.x86_64 7/8 Verifying : docker-ce-rootless-extras-20.10.2-3.el7.x86_64 8/8 Installed: containerd.io.x86_64 0:1.4.3-3.1.el7 docker-ce.x86_64 3:20.10.2-3.el7 docker-ce-cli.x86_64 1:20.10.2-3.el7 Dependency Installed: container-selinux.noarch 2:2.119.2-1.911c772.el7_8 docker-ce-rootless-extras.x86_64 0:20.10.2-3.el7 fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 fuse3-libs.x86_64 0:3.6.1-4.el7 slirp4netns.x86_64 0:0.4.3-4.el7_8 Complete!
設定
Systemdによる自動起動の設定
Dockerの起動はSystemdで管理されており、インストール直後は自動起動が無効状態になっています。 また、Dockerのプロセスも停止した状態です。 自動起動を有効にします。
# systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://docs.docker.com # systemctl enable docker.service Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
Dockerの起動
Dockerを利用するために、特にこれといって必要な事前設定はないため、Dockerを起動します。
# systemctl start docker.service # systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since Thu 2021-01-28 01:18:33 JST; 6s ago ←起動状態 Docs: https://docs.docker.com Main PID: 27027 (dockerd) Tasks: 10 Memory: 45.6M CGroup: /system.slice/docker.service mq27027 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.483422120...c Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.483519627...c Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.483536371...c Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.514722392..." Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.691097476..." Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.735520852..." Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.756338334...2 Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.756448013..." Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal systemd[1]: Started Docker Application Container E...e. Jan 28 01:18:33 ip-10-204-232-88.ap-northeast-1.compute.internal dockerd[27027]: time="2021-01-28T01:18:33.779466946..." Hint: Some lines were ellipsized, use -l to show in full.
動作確認
インストール済みDockerバージョンの確認
今回の手順でインストールされたDockerのバージョンを確認します。
# docker -v Docker version 20.10.2, build 2291f61
Dockerプロセスの起動確認
Dockerのプロセスが起動していることを確認します。 プロセス名はdockerdでした。
# ps -ef | grep docker | grep -v grep root 27027 1 0 01:18 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
おまけ
CentOS 7.7の標準YUMリポジトリからインストール可能なDockerのバージョン
DockerのYUMリポジトリを登録する前に標準のYUMリポジトリでインストール可能な Dockerのバージョン情報は以下の通り1.13.1でした。
# yum info docker Loaded plugins: fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Loading mirror speeds from cached hostfile * base: d36uatko69830t.cloudfront.net * epel: ftp.jaist.ac.jp * extras: d36uatko69830t.cloudfront.net * updates: d36uatko69830t.cloudfront.net Available Packages Name : docker Arch : x86_64 Epoch : 2 Version : 1.13.1 Release : 203.git0be3e21.el7.centos Size : 18 M Repo : extras/7/x86_64 Summary : Automates deployment of containerized applications URL : https://github.com/docker/docker License : ASL 2.0 Description : Docker is an open-source engine that automates the deployment of any : application as a lightweight, portable, self-sufficient container that will : run virtually anywhere. : : Docker containers can encapsulate any payload, and will run consistently on : and between virtually any server. The same container that a developer builds : and tests on a laptop will run at scale, in production*, on VMs, bare-metal : servers, OpenStack clusters, public instances, or combinations of the above. #
DockerのYUMリポジトリでインストール可能なDockerのバージョンリスト
今回の手順ではバージョンを指定しなかったので最新のバージョンがインストールされましたが、 バージョンを指定したい場合は2021/01/28時点では以下のバージョンから選択してインストール可能です。
# yum list docker-ce --showduplicates | sort -r * updates: d36uatko69830t.cloudfront.net Loading mirror speeds from cached hostfile Loaded plugins: fastestmirror Installed Packages * extras: d36uatko69830t.cloudfront.net * epel: ftp.iij.ad.jp docker-ce.x86_64 3:20.10.2-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.2-3.el7 @docker-ce-stable docker-ce.x86_64 3:20.10.1-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.0-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.9-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.14-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.13-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.12-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.11-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.10-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable * base: d36uatko69830t.cloudfront.net Available Packages