CentOS8でのdockerインストール方法

Web開発

EC-CUBEの開発環境を整えるために、CentOS8上にdocker&docker-composeをインストールする必要があったので、その過程を記載します。

結論から申しますと、CentOS7にdockerをインストールして開発した方がいいです。

CentOS8でdockerをインストールする

以降の作業はrootユーザにて行っている。

$ sudo su

dockerをインストールするためのリポジトリを追加する。

# dnf 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

リポジトリがインストールされたのか確認する。

dnf repolist -v

以下のように表示されていればOK。

...
Repo-id      : docker-ce-stable
Repo-name    : Docker CE Stable - x86_64
Repo-revision: 1573753657
Repo-updated : Thu 14 Nov 2019 05:47:37 PM UTC
Repo-pkgs    : 57
Repo-size    : 1.2 G
Repo-baseurl : https://download.docker.com/linux/centos/7/x86_64/stable
Repo-expire  : 172,800 second(s) (last: Sun 02 Feb 2020 07:37:35 AM UTC)
Repo-filename: /etc/yum.repos.d/docker-ce.repo
...

dockerをインストールする

# dnf install docker-ce

とすると、以下のようにエラーとなる。

Last metadata expiration check: 0:01:43 ago on Sun 02 Feb 2020 07:37:35 AM UTC.
Error:
 Problem: 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
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use
not only best candidate packages)

これは、CentOS8ではcontainerd.io >= 1.2.2-3は、まだ提供されていないらしい。
よって、–nobest optionを追加してインストールする。

--nobestを付けると、最新のもの(docker-ce-3:19.03)はインストールできないが、
古いパッケージ(docker-ce-3:18.09)がインストールされる。

# dnf -y install docker-ce --nobest
Last metadata expiration check: 0:04:06 ago on Sun 02 Feb 2020 07:37:35 AM UTC.
Dependencies resolved.

 Problem: 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
================================================================================

 Package                      Arch   Version             Repository        Size
================================================================================

Installing:
 docker-ce                    x86_64 3:18.09.1-3.el7     docker-ce-stable  19 M
Installing dependencies:
 container-selinux            noarch 2:2.107-2.module_el8.1.0+237+63e26edc
                                                         AppStream         44 k
 checkpolicy                  x86_64 2.9-1.el8           BaseOS           348 k
 libcgroup                    x86_64 0.41-19.el8         BaseOS            70 k
 policycoreutils-python-utils noarch 2.9-3.el8           BaseOS           250 k
 python3-audit                x86_64 3.0-0.10.20180831git0047a6c.el8
                                                         BaseOS            85 k
 python3-libsemanage          x86_64 2.9-1.el8           BaseOS           127 k
 python3-policycoreutils      noarch 2.9-3.el8           BaseOS           2.2 M
 python3-setools              x86_64 4.2.2-1.el8         BaseOS           600 k
 containerd.io                x86_64 1.2.0-3.el7         docker-ce-stable  22 M
 docker-ce-cli                x86_64 1:19.03.5-3.el7     docker-ce-stable  39 M
Enabling module streams:
 container-tools                     rhel8
Skipping packages with broken dependencies:
 docker-ce                    x86_64 3:19.03.5-3.el7     docker-ce-stable  24 M

Transaction Summary
================================================================================

Install  11 Packages
Skip      1 Package

...

Running transaction
  Preparing        :                                                        1/1

  Installing       : docker-ce-cli-1:19.03.5-3.el7.x86_64                  1/11

  Running scriptlet: docker-ce-cli-1:19.03.5-3.el7.x86_64                  1/11

  Installing       : containerd.io-1.2.0-3.el7.x86_64                      2/11

  Running scriptlet: containerd.io-1.2.0-3.el7.x86_64                      2/11

  Installing       : python3-setools-4.2.2-1.el8.x86_64                    3/11

  Installing       : python3-libsemanage-2.9-1.el8.x86_64                  4/11

  Installing       : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_    5/11

  Running scriptlet: libcgroup-0.41-19.el8.x86_64                          6/11

  Installing       : libcgroup-0.41-19.el8.x86_64                          6/11

  Running scriptlet: libcgroup-0.41-19.el8.x86_64                          6/11

  Installing       : checkpolicy-2.9-1.el8.x86_64                          7/11

  Installing       : python3-policycoreutils-2.9-3.el8.noarch              8/11

  Installing       : policycoreutils-python-utils-2.9-3.el8.noarch         9/11

  Installing       : container-selinux-2:2.107-2.module_el8.1.0+237+63e   10/11

  Running scriptlet: container-selinux-2:2.107-2.module_el8.1.0+237+63e   10/11

  Running scriptlet: docker-ce-3:18.09.1-3.el7.x86_64                     11/11

  Installing       : docker-ce-3:18.09.1-3.el7.x86_64                     11/11

  Running scriptlet: docker-ce-3:18.09.1-3.el7.x86_64                     11/11

  Verifying        : container-selinux-2:2.107-2.module_el8.1.0+237+63e    1/11

  Verifying        : checkpolicy-2.9-1.el8.x86_64                          2/11

  Verifying        : libcgroup-0.41-19.el8.x86_64                          3/11

  Verifying        : policycoreutils-python-utils-2.9-3.el8.noarch         4/11

  Verifying        : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_    5/11

  Verifying        : python3-libsemanage-2.9-1.el8.x86_64                  6/11

  Verifying        : python3-policycoreutils-2.9-3.el8.noarch              7/11

  Verifying        : python3-setools-4.2.2-1.el8.x86_64                    8/11

  Verifying        : containerd.io-1.2.0-3.el7.x86_64                      9/11

  Verifying        : docker-ce-3:18.09.1-3.el7.x86_64                     10/11

  Verifying        : docker-ce-cli-1:19.03.5-3.el7.x86_64                 11/11

Installed:
  docker-ce-3:18.09.1-3.el7.x86_64

  container-selinux-2:2.107-2.module_el8.1.0+237+63e26edc.noarch

  checkpolicy-2.9-1.el8.x86_64

  libcgroup-0.41-19.el8.x86_64

  policycoreutils-python-utils-2.9-3.el8.noarch

  python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64

  python3-libsemanage-2.9-1.el8.x86_64

  python3-policycoreutils-2.9-3.el8.noarch

  python3-setools-4.2.2-1.el8.x86_64

  containerd.io-1.2.0-3.el7.x86_64

  docker-ce-cli-1:19.03.5-3.el7.x86_64

Skipped:
  docker-ce-3:19.03.5-3.el7.x86_64

Complete!

dokcerのstatusを確認する。

# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor pre>
   Active: inactive (dead)
     Docs: https://docs.docker.com

CentOS8起動時に、dockerも起動するようにする。

# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /u
sr/lib/systemd/system/docker.service.

dokcerのstatusを再確認する。enabledになっているのでOK。

# systemctl is-enabled docker
enabled

CentOS8でdocker composeをインストールする

Gitのリポジトリから最新のversionをダウンロードする。

release noteから、最新のversionを確認できる。現在(2020/02/02)は、1.25.3が最新。

# curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

ダウンロード完了後、docker-composeをコマンドとして使用するために、
バイナリファイルに実行権限を付与する。

# chmod +x /usr/local/bin/docker-compose

コマンドが実行できるのかの確認として、以下を実行する。

# /usr/local/bin/docker-compose --version
docker-compose version 1.25.3, build d4d1b42b

rootユーザのPATHに、/usr/local/binを追加しておく。

# vi ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/bin/

export PATH

.bash_profileの変更を反映する。

# source ~/.bash_profile

以下コマンドでrootユーザで実行できることを確認する。

# docker-compose --version
docker-compose version 1.25.3, build d4d1b42b

参考

CentOS8でDockerCEをinstallする
How to install Docker CE on RHEL 8 / CentOS 8

タイトルとURLをコピーしました