OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2021/01/28
更新日: 2021/01/29

OSSセットアップ

Docker Engine 20.10.2をCentOS 7.7へインストール

トップページOSSセットアップ > 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 IDami-06a46da680048c8ae
AMI 名CentOS Linux 7 x86_64 HVM EBS ENA 2002_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-0042af67f8e4dcc20.4
インスタンスタイプt3.medium
vCPU2
メモリ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

参考にしたサイト