CentOS8にDockerをイントールするときにはまった時のメモです。まずは目の前で起きたことと対応について書きますが、内容的な根拠とかは追記したいと思います。
CentOS8でDockerを動かす
1. リポジトリの追加
dnfコマンドでインストールするにあたりリポジトリを追加します。
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
2. Dockerのインストールでエラー発生
ここでdnfコマンドでDockerをインストールすればスルスル・・・といけるはずだったんですが。
dnf install -y --nobest docker-ce docker-ce-cli
下記の通りパッケージがらみで問題が発生しました。
[root@localhost kizawa]# dnf install -y --nobest docker-ce docker-ce-cli メタデータの期限切れの最終確認: 0:07:04 時間前の 2021年11月23日 10時26分56秒 に実施しました。 パッケージ docker-ce-cli-1:20.10.11-3.el8.x86_64 は既にインストールされています。 エラー: 問題: パッケージ docker-ce-3:19.03.13-3.el8.x86_64 には containerd.io >= 1.2.2-3 が必要ですが、どのプロバイダーからもインストールできません - パッケージ containerd.io-1.3.7-3.1.el8.x86_64 は runc と競合しています。これは runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64 により提供されます - パッケージ containerd.io-1.3.7-3.1.el8.x86_64 は runc を廃止しました。これは runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64 により提供されます
画面はこんな感じ。
3. 対策
containers.ioの1.2.2.-3が必要ですが、競合しているようです。現在のパッケージを削除して再インストールします。こちらの記事を参考にさせていただきました。
すみませんが、自分用のメモとして打ったコマンドを記載します。元記事にはsudoコマンドで実行していますが、私はrootアカウントで実行していたので、sudoは記載していません。
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.2-3.3.el7.x86_64.rpm dnf remove containerd.io dnf install containerd.io-1.2.2-3.3.el7.x86_64.rpm
改めて下記コマンドを実行してインストールできました。
dnf install -y --nobest docker-ce docker-ce-cli
確認します。
docker -v
4. ubuntuのイメージを動かす
では、ubuntuのDokcerイメージをダウンロードして動かしてみます。
4.1 ubuntuのイメージをダウンロード
ubuntuの最新版を取ってきます。
docker pull ubuntu:latest
4.2 コンテナの作成と起動
コンテナ名をubuntulastとします。(ちょっと名前は考えた方がよさそうですが)
docker run -it -d --name ubuntulast ubuntu:latest
起動します。
docker exec -it ubuntulast /bin/bash
これでubuntuのシェルに入れました。