はじめに
基本的にCentOS7時とインストール方法に大きな違いはありませんが公式ではまだCentOS8のサポートはされていなさそうなのでしっかりとした環境を作るならまだCentOS7のほうがよさそうです
対象者
CentOS8にDockerを入れてみたいなって人
version
- VirtualBox 6.0
- CetnOS 8
- Docker 19.03.2
事前準備
とりあえずお決まりのyum updateではなくdnf update
#dnf -y update
リポジトリの追加
dnf repolistであらかじめ最初の状態を確認しておく
# dnf repolist
メタデータの期限切れの最終確認: 1:03:10 時間前の 2019年09月30日 01時08分59秒 に 実施しました。
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 4,928
BaseOS CentOS-8 - Base 2,713
extras CentOS-8 - Extras 3
dnfになってからはdnf config-manager --add-repoでリポジトリが追加できるそう
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
リポジトリが追加されたことを確認する
メタデータの期限切れの最終確認: 0:00:01 時間前の 2019年09月30日 02時17分03秒 に 実施しました。
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 4,928
BaseOS CentOS-8 - Base 2,713
docker-ce-stable Docker CE Stable - x86_64 51
extras CentOS-8 - Extras 3
Dockerのインストール
早速インストールしようと思ったらエラーどうやらcontainerd.ioがダメって言われてるっぽい
# dnf -y install docker-ce docker-ce-cli containerd.io
メタデータの期限切れの最終確認: 0:02:40 時間前の 2019年09月30日 02時17分03秒 に 実施しました。
エラー:
問題: package docker-ce-3:19.03.2-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.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
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
ぱっと見違うバージョンをいれれば動きそうだったのでhttps://download.docker.com/linux/centos/7/x86_64/stable/Packages/
ここからそれっぽいバージョンをとってくることにした
# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.2-3.3.el7.x86_64.rpm
--2019-09-30 02:28:20-- https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.2-3.3.el7.x86_64.rpm
download.docker.com (download.docker.com) をDNSに問いあわせています... 13.35.50.98, 13.35.50.10, 13.35.50.117, ...
download.docker.com (download.docker.com)|13.35.50.98|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 23159364 (22M) [binary/octet-stream]
`containerd.io-1.2.2-3.3.el7.x86_64.rpm' に保存中
containerd.io-1.2.2 100%[===================>] 22.09M 5.67MB/s 時間 3.8s
2019-09-30 02:28:26 (5.75 MB/s) - `containerd.io-1.2.2-3.3.el7.x86_64.rpm' へ保 存完了 [23159364/23159364]
無事に落としてくることが出来たので古いバージョンを消してから改めてインストール
# dnf remove containerd.io
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ サイズ
================================================================================
削除中:
containerd.io x86_64 1.2.0-3.el7 @docker-ce-stable 88 M
トランザクションの概要
================================================================================
削除 1 パッケージ
解放された容量: 88 M
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
scriptletの実行中: containerd.io-1.2.0-3.el7.x86_64 1/1
削除 : containerd.io-1.2.0-3.el7.x86_64 1/1
scriptletの実行中: containerd.io-1.2.0-3.el7.x86_64 1/1
検証 : containerd.io-1.2.0-3.el7.x86_64 1/1
削除しました:
containerd.io-1.2.0-3.el7.x86_64
完了しました!
# dnf install containerd.io-1.2.2-3.3.el7.x86_64.rpm
メタデータの期限切れの最終確認: 0:11:57 時間前の 2019年09月30日 02時17分03秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ サイズ
================================================================================
Installing:
containerd.io x86_64 1.2.2-3.3.el7 @commandline 22 M
トランザクションの概要
================================================================================
インストール 1 パッケージ
合計サイズ: 22 M
インストール済みのサイズ: 88 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード中です:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
Installing : containerd.io-1.2.2-3.3.el7.x86_64 1/1
scriptletの実行中: containerd.io-1.2.2-3.3.el7.x86_64 1/1
検証 : containerd.io-1.2.2-3.3.el7.x86_64 1/1
インストール済み:
containerd.io-1.2.2-3.3.el7.x86_64
完了しました!
やはり違うバージョンを入れることによりエラーをはかないでインストールすることが出来た
# dnf install -y docker-ce docker-ce-cli
メタデータの期限切れの最終確認: 0:12:25 時間前の 2019年09月30日 02時17分03秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ サイズ
================================================================================
Installing:
docker-ce x86_64 3:19.03.2-3.el7 docker-ce-stable 24 M
docker-ce-cli x86_64 1:19.03.2-3.el7 docker-ce-stable 39 M
依存関係をインストール中:
container-selinux noarch 2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7
AppStream 43 k
checkpolicy x86_64 2.8-2.el8 BaseOS 338 k
libcgroup x86_64 0.41-19.el8 BaseOS 70 k
policycoreutils-python-utils noarch 2.8-16.1.el8 BaseOS 228 k
python3-audit x86_64 3.0-0.10.20180831git0047a6c.el8
BaseOS 85 k
python3-libsemanage x86_64 2.8-5.el8 BaseOS 127 k
python3-policycoreutils noarch 2.8-16.1.el8 BaseOS 2.2 M
python3-setools x86_64 4.2.0-2.el8 BaseOS 598 k
tar x86_64 2:1.30-4.el8 BaseOS 838 k
Enabling module streams:
container-tools rhel8
トランザクションの概要
================================================================================
インストール 11 パッケージ
ダウンロードサイズの合計: 68 M
インストール済みのサイズ: 285 M
パッケージのダウンロード中です:
(1/11): container-selinux-2.94-1.git1e99f1d.mod 38 kB/s | 43 kB 00:01
(2/11): libcgroup-0.41-19.el8.x86_64.rpm 57 kB/s | 70 kB 00:01
(3/11): python3-audit-3.0-0.10.20180831git0047a 957 kB/s | 85 kB 00:00
(4/11): checkpolicy-2.8-2.el8.x86_64.rpm 246 kB/s | 338 kB 00:01
(5/11): policycoreutils-python-utils-2.8-16.1.e 821 kB/s | 228 kB 00:00
(6/11): python3-libsemanage-2.8-5.el8.x86_64.rp 1.0 MB/s | 127 kB 00:00
(7/11): python3-setools-4.2.0-2.el8.x86_64.rpm 1.8 MB/s | 598 kB 00:00
(8/11): tar-1.30-4.el8.x86_64.rpm 2.0 MB/s | 838 kB 00:00
(9/11): python3-policycoreutils-2.8-16.1.el8.no 3.5 MB/s | 2.2 MB 00:00
(10/11): docker-ce-cli-19.03.2-3.el7.x86_64.rpm 2.4 MB/s | 39 MB 00:16
(11/11): docker-ce-19.03.2-3.el7.x86_64.rpm 1.3 MB/s | 24 MB 00:19
--------------------------------------------------------------------------------
合計 2.9 MB/s | 68 MB 00:23
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
Installing : docker-ce-cli-1:19.03.2-3.el7.x86_64 1/11
scriptletの実行中: docker-ce-cli-1:19.03.2-3.el7.x86_64 1/11
Installing : tar-2:1.30-4.el8.x86_64 2/11
scriptletの実行中: tar-2:1.30-4.el8.x86_64 2/11
Installing : python3-setools-4.2.0-2.el8.x86_64 3/11
Installing : python3-libsemanage-2.8-5.el8.x86_64 4/11
Installing : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_ 5/11
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 6/11
Installing : libcgroup-0.41-19.el8.x86_64 6/11
scriptletの実行中: libcgroup-0.41-19.el8.x86_64 6/11
Installing : checkpolicy-2.8-2.el8.x86_64 7/11
Installing : python3-policycoreutils-2.8-16.1.el8.noarch 8/11
Installing : policycoreutils-python-utils-2.8-16.1.el8.noarch 9/11
Installing : container-selinux-2:2.94-1.git1e99f1d.module_el8.0 10/11
scriptletの実行中: container-selinux-2:2.94-1.git1e99f1d.module_el8.0 10/11
Installing : docker-ce-3:19.03.2-3.el7.x86_64 11/11
scriptletの実行中: docker-ce-3:19.03.2-3.el7.x86_64 11/11
検証 : container-selinux-2:2.94-1.git1e99f1d.module_el8.0 1/11
検証 : checkpolicy-2.8-2.el8.x86_64 2/11
検証 : libcgroup-0.41-19.el8.x86_64 3/11
検証 : policycoreutils-python-utils-2.8-16.1.el8.noarch 4/11
検証 : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_ 5/11
検証 : python3-libsemanage-2.8-5.el8.x86_64 6/11
検証 : python3-policycoreutils-2.8-16.1.el8.noarch 7/11
検証 : python3-setools-4.2.0-2.el8.x86_64 8/11
検証 : tar-2:1.30-4.el8.x86_64 9/11
検証 : docker-ce-3:19.03.2-3.el7.x86_64 10/11
検証 : docker-ce-cli-1:19.03.2-3.el7.x86_64 11/11
インストール済み:
docker-ce-3:19.03.2-3.el7.x86_64
docker-ce-cli-1:19.03.2-3.el7.x86_64
container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch
checkpolicy-2.8-2.el8.x86_64
libcgroup-0.41-19.el8.x86_64
policycoreutils-python-utils-2.8-16.1.el8.noarch
python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64
python3-libsemanage-2.8-5.el8.x86_64
python3-policycoreutils-2.8-16.1.el8.noarch
python3-setools-4.2.0-2.el8.x86_64
tar-2:1.30-4.el8.x86_64
完了しました!
Dockerの起動と確認
いつも通りsystemctlで起動と自動起動設定をする
# systemctl start docker
# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
バージョンの確認
# docker --version
Docker version 19.03.2, build 6a30dfc
まとめ
この記事は私がふとDockerのお勉強がしたいなと思い立ち、さらにどうせやるならCentOS8にインストールしてしまえと思い立っただけの記事です。同じようなことをやりたいと思った人の参考になったらうれしいです。
参考にさせてもらったもの
https://qiita.com/summer/items/ac2d35fb10dfae52400e
https://qiita.com/ymasaoka/items/b6c3ffea060bcd237478
おまけ
一応containerd.ioは別バージョン取ってこなくてもdnf installするときに--nobestをつけたりすれば警告は出るけどインストールはできる