本格的にCentos8を使い始めたので、いろいろ導入してみたことを記載します。
今回はDockerについてです。
公式のインストール手順はこちらから。
ちなみに公式が公開している手順はCentos7ベースです。
私が試してみた際には2か所ほど引っ掛かりました。
Docker インストール
古いパッケージの削除
新規インストールの場合は飛ばしてもよいかもしれません。
$ sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
一致した引数がありません: docker
一致した引数がありません: docker-client
一致した引数がありません: docker-client-latest
一致した引数がありません: docker-common
一致した引数がありません: docker-latest
一致した引数がありません: docker-latest-logrotate
一致した引数がありません: docker-logrotate
一致した引数がありません: docker-engine
削除対象のパッケージはありません。
依存関係が解決しました。
行うべきことはありません。
完了しました!
必要パッケージをインストールします。
$ sudo dnf install -y yum-utils \
device-mapper-persistent-data \
lvm2
CentOS-8 - AppStream 3.9 MB/s | 6.0 MB 00:01
CentOS-8 - Base 4.0 MB/s | 4.0 MB 00:01
CentOS-8 - Extras 2.5 kB/s | 2.1 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 24 kB/s | 21 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 4.0 MB/s | 5.5 MB 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 87 kB/s | 531 kB 00:06
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 142 kB/s | 1.4 MB 00:10
パッケージ yum-utils-4.0.8-3.el8.noarch は既にインストールされています。
パッケージ device-mapper-persistent-data-0.8.5-2.el8.x86_64 は既にインストールされています。
パッケージ lvm2-8:2.03.05-5.el8.0.1.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
リポジトリを追加します。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
Dockerをインストールします。
そして引っ掛かりました。
$ sudo dnf install docker-ce docker-ce-cli containerd.io
CentOS-8 - AppStream 11 kB/s | 4.3 kB 00:00
CentOS-8 - Base 5.1 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 3.7 kB/s | 1.5 kB 00:00
Docker CE Stable - x86_64 67 kB/s | 21 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 9.0 kB/s | 8.7 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 14 kB/s | 9.3 kB 00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64 3.2 kB/s | 3.5 kB 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 2.9 kB/s | 3.0 kB 00:01
エラー:
問題: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be
installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加し
て、最適候補のパッケージのみを使用しないでください)
どうやらpackage containerd.io
で列挙されたバージョンが必要なのに、インストールができなかったようです。
$ sudo dnf search --repo docker-ce-stable containerd.io
========================================== 名前 完全一致: containerd.io ===========================================
containerd.io.x86_64 : An industry-standard container runtime
検索してみるとパッケージはありました。
$ dnf info --repo docker-ce-stable containerd.io
利用可能なパッケージ
名前 : containerd.io
バージョン : 1.2.10
リリース : 3.2.el7
Arch : x86_64
サイズ : 23 M
ソース : containerd.io-1.2.10-3.2.el7.src.rpm
リポジトリー : docker-ce-stable
概要 : An industry-standard container runtime
URL : https://containerd.io
ライセンス : ASL 2.0
説明 : containerd is an industry-standard container runtime with an emphasis on
: simplicity, robustness and portability. It is available as a daemon for Linux
: and Windows, which can manage the complete container lifecycle of its host
: system: image transfer and storage, container execution and supervision,
: low-level storage and network attachments, etc.
infoで見てもバージョンに問題はなさそうなんですが。。。
$ sudo dnf --showduplicates search containerd.io
========================================== 名前 完全一致: containerd.io ===========================================
containerd.io-1.2.0-1.2.beta.2.el7.x86_64 : An industry-standard container runtime
containerd.io-1.2.0-2.0.rc.0.1.el7.x86_64 : An industry-standard container runtime
containerd.io-1.2.0-2.2.rc.2.1.el7.x86_64 : An industry-standard container runtime
containerd.io-1.2.0-3.el7.x86_64 : An industry-standard container runtime
インストール可能な全バージョンを検索してみたら、containerd.io-1.2.0 しかありませんでした。
infoで出たバージョンは何だったんだろう。。。?
仕方がないので、ここから最新パッケージを落としてきてインストールします。
参考:CentOS8にDockerを入れる
そしてまた引っ掛かりました。
$ wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm
$ sudo rpm -ivh containerd.io-1.2.10-3.2.el7.x86_64.rpm
error: Failed dependencies:
container-selinux >= 2:2.74 is needed by containerd.io-1.2.10-3.2.el7.x86_64
container-selinux が必要ってことですね。
今のバージョンは。。。?
$ sudo rpm -qa | grep container-selinux
$
oh...そもそもパッケージが入っていませんでした。
containerd.ioの二の舞にならないよう、念のため全バージョンを確認しておきましょう。
$ sudo dnf --showduplicates search container-selinux
======================================== 名前 完全一致: container-selinux =========================================
container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch : SELinux policies for container runtimes
バージョン問題はクリアしていますね。
インストールしましょう。
$ sudo dnf install container-selinux
依存関係が解決しました。
===================================================================================================================
パッケージ Arch バージョン リポジトリー サイズ
===================================================================================================================
インストール:
container-selinux noarch 2:2.107-2.module_el8.1.0+237+63e26edc AppStream 44 k
モジュールストリームの有効化:
container-tools rhel8
トランザクションの概要
===================================================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 44 k
インストール済みのサイズ: 40 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
container-selinux-2.107-2.module_el8.1.0+237+63e26edc.noarch.rpm 26 kB/s | 44 kB 00:01
-------------------------------------------------------------------------------------------------------------------
合計 19 kB/s | 44 kB 00:02
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch 1/1
scriptletの実行中: container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch 1/1
検証 : container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch 1/1
インストール済み:
container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch
完了しました!
無事にインストールできました。
改めてcontainerd.ioをインストールします。
$ sudo rpm -ivh containerd.io-1.2.10-3.2.el7.x86_64.rpm
warning: containerd.io-1.2.10-3.2.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:containerd.io-1.2.10-3.2.el7 ################################# [100%]
こちらも無事にインストールできました。
ようやくDockerがインストールできます!
$ sudo dnf install docker-ce docker-ce-cli
依存関係が解決しました。
===================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===================================================================================================================
インストール:
docker-ce x86_64 3:19.03.5-3.el7 docker-ce-stable 24 M
docker-ce-cli x86_64 1:19.03.5-3.el7 docker-ce-stable 39 M
依存関係のインストール:
libcgroup x86_64 0.41-19.el8 BaseOS 70 k
トランザクションの概要
===================================================================================================================
インストール 3 パッケージ
ダウンロードサイズの合計: 64 M
インストール済みのサイズ: 273 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): libcgroup-0.41-19.el8.x86_64.rpm 54 kB/s | 70 kB 00:01
(2/3): docker-ce-19.03.5-3.el7.x86_64.rpm 11 MB/s | 24 MB 00:02
(3/3): docker-ce-cli-19.03.5-3.el7.x86_64.rpm 11 MB/s | 39 MB 00:03
-------------------------------------------------------------------------------------------------------------------
合計 15 MB/s | 64 MB 00:04
warning: /var/cache/dnf/docker-ce-stable-091d8a9c23201250/packages/docker-ce-19.03.5-3.el7.x86_64.rpm: Header V4 RS
A/SHA512 Signature, key ID 621e9f35: NOKEY
Docker CE Stable - x86_64 13 kB/s | 1.6 kB 00:00
GPG 鍵 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
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : docker-ce-cli-1:19.03.5-3.el7.x86_64 1/3
scriptletの実行中: docker-ce-cli-1:19.03.5-3.el7.x86_64 1/3
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 2/3
インストール中 : libcgroup-0.41-19.el8.x86_64 2/3
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 2/3
インストール中 : docker-ce-3:19.03.5-3.el7.x86_64 3/3
scriptletの実行中: docker-ce-3:19.03.5-3.el7.x86_64 3/3
検証 : libcgroup-0.41-19.el8.x86_64 1/3
検証 : docker-ce-3:19.03.5-3.el7.x86_64 2/3
検証 : docker-ce-cli-1:19.03.5-3.el7.x86_64 3/3
インストール済み:
docker-ce-3:19.03.5-3.el7.x86_64 docker-ce-cli-1:19.03.5-3.el7.x86_64 libcgroup-0.41-19.el8.x86_64
完了しました!
さて、Dockerを起動してみましょう。
$ sudo systemctl start docker
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-02-04 11:37:29 JST; 5s ago
Docs: https://docs.docker.com
Main PID: 14218 (dockerd)
Tasks: 10
Memory: 44.6M
CGroup: /system.slice/docker.service
└─14218 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.169376623+09:00" level=info msg="ClientConn swi>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.194751667+09:00" level=warning msg="Your kernel>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.194778024+09:00" level=warning msg="Your kernel>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.194932968+09:00" level=info msg="Loading contai>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.410006453+09:00" level=info msg="Default bridge>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.504908668+09:00" level=info msg="Loading contai>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.522814914+09:00" level=info msg="Docker daemon">
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.523082762+09:00" level=info msg="Daemon has com>
2月 04 11:37:29 server1 dockerd[14218]: time="2020-02-04T11:37:29.550752482+09:00" level=info msg="API listen on >
2月 04 11:37:29 server1 systemd[1]: Started Docker Application Container Engine.
問題なく動いているようです。
あとは自動起動の設定を忘れずに実施すれば完了ですね。
$ sudo systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
お疲れ様でした。