Rocky Linux9 dockerをインストールする

Rocky Linux9 dockerをインストールする

Rocky Linux9にdockerとdocker composeをインストールするまでの手順です。

環境

  • OS  Rocky Linux release 9.0 (Blue Onyx)

リポジトリ追加

まずはアップデートします。

$ sudo dnf update

現行のものがあれば削除しておきます。

$ sudo dnf remove docker docker-common docker-selinux docker-engine
一致した引数がありません: docker
一致した引数がありません: docker-common
一致した引数がありません: docker-engine

リポジトリを追加します。

$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

追加したリポジトリを確認します。

$ dnf repolist

repo id                                                               repo の名前
appstream                                                             Rocky Linux 9 - AppStream
baseos                                                                Rocky Linux 9 - BaseOS
docker-ce-stable                                                      Docker CE Stable - x86_64
extras                                                                Rocky Linux 9 - Extras

dockerインストール

必要なパッケージをインストールしておきます。

$ sudo dnf -y install device-mapper-persistent-data lvm2

次に、dockerをインストールします。
自分の場合は、以下のエラーが発生しました。

$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

メタデータの期限切れの最終確認: 0:00:14 時間前の 2022年08月19日 11時10分38秒 に実施しました。
エラー: 
 問題: インストール済パッケージの問題 buildah-1:1.26.2-1.el9_0.x86_64
  - パッケージ buildah-1:1.26.2-1.el9_0.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ containerd.io-1.6.7-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.1.3-2.el9_0.x86_64 により提供されます
  - パッケージ containerd.io-1.6.7-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.1.3-2.el9_0.x86_64 により提供されます
  - ジョブの最良アップデート候補をインストールできません
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)

「–allowerasing」をつけて、インストールします。

$ sudo dnf install docker-ce --allowerasing

インストールが完了したら、バージョンを確認してみます。

$ docker -v

<出力結果>
Docker version 20.10.17, build 100c701

起動と自動起動を設定します。

$ sudo systemctl enable docker
$ sudo systemctl start docker

dockerをユーザーで実行

dockerをユーザーで実行できるようにdockerグループに追加しておきます。

$ sudo usermod -aG docker ${USER}

$ newgrp docker

$ id $USER

uid=1000(testuser) gid=1000(testuser) groups=1000(testuser),10(wheel),977(docker)

hello worldができればインストールは完了です。

$ docker run hello-world

<出力結果>
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
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/

hello worldできれば2つのコマンドを実行して、削除しておきます。

$ docker rm $(docker ps -q -a)

<出力結果>
07e4bf45e50e

$ docker rmi $(docker images -q)

<出力結果>
Untagged: hello-world:latest
Untagged: hello-world@sha256:9f6ad537c5132bcce57f7a0a20e317228d382c3cd61edae14650eec68b2b345c
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
Deleted: sha256:f22b99068db93900abe17f7f5e09ec775c2826ecfe9db961fea68293744144bd

docker composeインストール

docker composeもインストールしておきます。

$ curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url  | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -

権限も設定しておきます。

$ sudo chmod +x docker-compose-linux-x86_64

移動させます。

$ sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

バージョンを確認すると、最新のバージョンである「1.29.2」がインストールされていることが確認できます。

$ docker-compose version

<出力結果>
Docker Compose version v2.9.0