5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Centos8にDockerを入れてみる

Posted at

本格的に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.

お疲れ様でした。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?