見出し画像

【IT】Docker Engineのインストール(AlmaLinux/Rocky /CentOS)

皆様
こんにちは

本日は、AlmaLinux OS(RHELクローン)に
Docker Engineを導入します。
※Docker Desktopは、使用する環境で有料となったため導入はしません。

OSバージョンは、以下のものを使用します。

# more /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)

Dockerのレポジトリを追加します。

# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
repo の追加: https://download.docker.com/linux/centos/docker-ce.repo

レポジトリが登録されているのを確認します。
「docker-ce-stable Docker CE Stable - x86_64」が
追加されていること確認します。

# dnf repolist
repo id            repo の名前
appstream          AlmaLinux 8 - AppStream
baseos             AlmaLinux 8 - BaseOS
docker-ce-stable   Docker CE Stable - x86_64     →これです。
epel               Extra Packages for Enterprise Linux 8 - x86_64
epel-modular       Extra Packages for Enterprise Linux Modular 8 - x86_64
extras             AlmaLinux 8 - Extras
pgAdmin4           pgadmin4
pgdg-common        PostgreSQL common RPMs for RHEL / Rocky 8 - x86_64
pgdg10             PostgreSQL 10 for RHEL / Rocky 8 - x86_64
pgdg11             PostgreSQL 11 for RHEL / Rocky 8 - x86_64
pgdg12             PostgreSQL 12 for RHEL / Rocky 8 - x86_64
pgdg13             PostgreSQL 13 for RHEL / Rocky 8 - x86_64
pgdg14             PostgreSQL 14 for RHEL / Rocky 8 - x86_64
pgdg15             PostgreSQL 15 for RHEL / Rocky 8 - x86_64
powertools         AlmaLinux 8 - PowerTools
remi-modular       Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe          Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

インストールしようとすと環境により以下のエラーとなります。

# dnf install -y docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64                       132 kB/s |  33 kB     00:00
エラー:
 問題 1: インストール済パッケージの問題 podman-2:4.1.1-2.module_el8.6.0+3070+1510fbd1.x86_64
  - パッケージ podman-2:4.1.1-2.module_el8.6.0+3070+1510fbd1.x86_64 には runc >= 1.0.0-57 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ podman-3:4.2.0-4.module_el8.7.0+3344+484dae7b.x86_64 には runc >= 1.0.0-57 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ containerd.io-1.6.13-3.1.el8.x86_64 は runc と競合しています。これは runc-1:1.1.3-2.module_el8.6.0+3070+1510fbd1.x86_64 により提供されます
  - パッケージ containerd.io-1.6.13-3.1.el8.x86_64 は runc を廃止しました。これは runc-1:1.1.3-2.module_el8.6.0+3070+1510fbd1.x86_64 により提供されます
  - パッケージ containerd.io-1.6.13-3.1.el8.x86_64 は runc と競合しています。これは runc-1:1.1.4-1.module_el8.7.0+3344+484dae7b.x86_64 により提供されます
  - パッケージ containerd.io-1.6.13-3.1.el8.x86_64 は runc を廃止しました。これは runc-1:1.1.4-1.module_el8.7.0+3344+484dae7b.x86_64 により提供されます
  - ジョブの最良アップデート候補をインストールできません
  - パッケージ runc-1.0.0-66.rc10.module_el8.5.0+2635+e4386a39.x86_64 はモジュラーフィルタリングに一致しません
  - パッケージ runc-1.0.0-73.rc95.module_el8.6.0+2876+9ed4eae2.x86_64 はモジュラーフィルタリングに一致しません
  - パッケージ runc-1:1.1.4-1.module_el8.7.0+3344+5bcd850f.x86_64 はモジュラーフィルタリングに一致しません
 問題 2: インストール済パッケージの問題 buildah-1:1.26.2-1.module_el8.6.0+3070+1510fbd1.x86_64
  - パッケージ buildah-1:1.26.2-1.module_el8.6.0+3070+1510fbd1.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ buildah-1:1.27.2-2.module_el8.7.0+3348+f3135399.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ docker-ce-3:20.10.22-3.el8.x86_64 には containerd.io >= 1.4.1 が必要ですが、どのプロバイダーからもインストールできません

競合するモジュールをアンイストールします。

# dnf remove podman
pid 9351 のプロセスが終了するのを待ちます。
依存関係が解決しました。
================================================================================
 パッケージ      Arch   バージョン                             Repo       サイズ
================================================================================
削除中:
 podman          x86_64 2:4.1.1-2.module_el8.6.0+3070+1510fbd1 @appstream  45 M
依存関係パッケージの削除:
 cockpit-podman  noarch 49.1-1.module_el8.6.0+3070+1510fbd1    @appstream 526 k
未使用の依存関係の削除:
 conmon          x86_64 2:2.1.2-2.module_el8.6.0+3070+1510fbd1 @appstream 172 k
 podman-catatonit
                 x86_64 2:4.1.1-2.module_el8.6.0+3070+1510fbd1 @appstream 765 k
 shadow-utils-subid
                 x86_64 2:4.6-16.el8                           @baseos    205 k

トランザクションの概要
================================================================================
削除  5 パッケージ

解放された容量: 47 M
これでよろしいですか? [y/N]: y
# dnf remove containers-common runc
依存関係が解決しました。
================================================================================
 パッケージ    Arch   バージョン                               Repo       サイズ
================================================================================
削除中:
 containers-common
               x86_64 2:1-35.module_el8.6.0+3070+1510fbd1      @appstream 401 k
 runc          x86_64 1:1.1.3-2.module_el8.6.0+3070+1510fbd1   @appstream  11 M
依存関係パッケージの削除:
 buildah       x86_64 1:1.26.2-1.module_el8.6.0+3070+1510fbd1  @appstream  29 M
未使用の依存関係の削除:
 container-selinux
               noarch 2:2.188.0-1.module_el8.6.0+3070+1510fbd1 @appstream  57 k
 criu          x86_64 3.15-3.module_el8.6.0+2751+06427ca3      @appstream 1.4 M
 fuse-overlayfs
               x86_64 1.9-1.module_el8.6.0+3070+1510fbd1       @appstream 145 k
 fuse3         x86_64 3.3.0-15.el8                             @baseos    100 k
 fuse3-libs    x86_64 3.3.0-15.el8                             @baseos    274 k
 libnet        x86_64 1.1.6-15.el8                             @AppStream 170 k
 libslirp      x86_64 4.4.0-1.module_el8.6.0+2878+e681bc44     @appstream 134 k
 slirp4netns   x86_64 1.2.0-2.module_el8.6.0+3070+1510fbd1     @appstream 103 k

トランザクションの概要
================================================================================
削除  11 パッケージ

解放された容量: 43 M
これでよろしいですか? [y/N]: y

あらためてDockerをインストールします。

# dnf install -y docker-ce docker-ce-cli containerd.io
メタデータの期限切れの最終確認: 0:02:14 時間前の 2022年12月17日 11時43分44秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                Arch   バージョン             リポジトリー     サイズ
================================================================================
インストール:
 containerd.io             x86_64 1.6.13-3.1.el8         docker-ce-stable  33 M
 docker-ce                 x86_64 3:20.10.22-3.el8       docker-ce-stable  21 M
 docker-ce-cli             x86_64 1:20.10.22-3.el8       docker-ce-stable  30 M
依存関係のインストール:
 container-selinux         noarch 2:2.189.0-1.module_el8.6.0+3336+00d107d5
                                                         appstream         58 k
 docker-ce-rootless-extras x86_64 20.10.22-3.el8         docker-ce-stable 4.6 M
 fuse-overlayfs            x86_64 1.9-1.module_el8.6.0+3070+1510fbd1
                                                         appstream         72 k
 fuse3                     x86_64 3.3.0-16.el8           baseos            53 k
 fuse3-libs                x86_64 3.3.0-16.el8           baseos            94 k
 libcgroup                 x86_64 0.41-19.el8            baseos            69 k
 libslirp                  x86_64 4.4.0-1.module_el8.6.0+2878+e681bc44
                                                         appstream         69 k
 slirp4netns               x86_64 1.2.0-2.module_el8.6.0+3070+1510fbd1
                                                         appstream         53 k
弱い依存関係のインストール:
 docker-scan-plugin        x86_64 0.23.0-3.el8           docker-ce-stable 3.8 M

トランザクションの概要
================================================================================
インストール  12 パッケージ
・
・
・

Dockerのバージョンを確認します。
無事インストールされています。

docker -v
Docker version 20.10.22, build 3a2c30b

Dockerの自動起動を有効化し、起動します。

# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
# systemctl start docker
# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor pres>
   Active: active (running) since Sat 2022-12-17 11:51:18 JST; 6s ago
     Docs: https://docs.docker.com
 Main PID: 62151 (dockerd)
    Tasks: 10
   Memory: 25.9M
   CGroup: /system.slice/docker.service
           └─62151 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/conta>
・
・
・

稼働確認を行います。
テストでHello WorldのDockerを実行します。

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:c77be1d3a47d0caf71a82dd893ee61ce01f32fc758031a6ec4cf1389248bb833
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

起動後停止しますが、イメージは残りますので削除します。

# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED              STATUS                          PORTS     NAMES
9070e53c6e44   hello-world   "/hello"   About a minute ago   Exited (0) About a minute ago             busy_kilby
# docker rm 9070e53c6e44
9070e53c6e44
docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   14 months ago   13.3kB
# docker rmi feb5d9fea6a5
Untagged: hello-world:latest
Untagged: hello-world@sha256:c77be1d3a47d0caf71a82dd893ee61ce01f32fc758031a6ec4cf1389248bb833


以上、となります。
閲覧ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?