RHEL8 への Docker CE と Docker 構成のインストール

RHEL 8 に Docker CE と Docker 構成をインストールする

RHEL 8 に Docker CE と Docker 構成をインストールする方法は以下のとおりです。

  1. 次のコマンドを実行して、外部リポジトリーを追加します。
    sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    1. リポジトリーが有効になっているかどうかを確認します。これを行うには、有効なすべてのリポジトリーに関する詳細情報を返す次のコマンドを実行します。
      sudo dnf repolist -v
  2. --nobest オプションを指定して docker-ce をインストールします。このオプションを使用すると、満たすことができる依存関係を持つ最初のバージョンの docker-ce が「フォールバック」バージョンとして選択されます。
    sudo dnf install --nobest docker-ce
  3. 利用可能な最新の containerd.io パッケージを手動でインストールする
    sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
  4. 最新バージョンの docker-ce をインストールします。
    sudo dnf install docker-ce
  5. docker デーモンを起動して有効にします
    sudo systemctl enable --now docker
    1. 次のコマンドを実行して、デーモンがアクティブかどうかを確認します。
      systemctl is-active docker
  6. docker-compose をグローバルでインストールします。
    1. プロジェクトの GitHub ページからバイナリー・ファイルをダウンロードします。
      curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o docker-compose
    2. バイナリー・ファイルをダウンロードした後、それを /usr/local/bin フォルダーに移動し、実行可能にします。
      sudo mv docker-compose /usr/local/bin && sudo chmod +x /usr/local/bin/docker-compose
      sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 

詳しくは、「https://linuxconfig.org/how-to-install-docker-in-rhel-8」を参照してください。

このインストール後、Docker CE コンテナー接続の問題が発生する可能性があります。この問題を解決するには、以下の手順を実行します。

Docker CE コンテナー接続の問題を解決します。

Docker CE コンテナー接続の問題を解決するには、次の手順を実行します。
  1. どのインターフェース Docker が使用されているかを確認します。例えば、「docker0」です。
    ip link show
  2. 使用可能なファイアウォール・ゾーンを確認します。例えば、「パブリック」です。
    sudo firewall-cmd --get-active-zones
  3. Docker インターフェースがバインドされているゾーンを確認します。通常、Docker インターフェースはまだゾーンにバインドされていません。
    sudo firewall-cmd --get-zone-of-interface=docker0
  4. 「パブリック」ゾーンに「docker0」インターフェースを追加します。変更は、ファイアウォールが再ロードされた後にのみ表示されます。
    sudo nmcli connection modify docker0 connection.zone public
  5. マスカレードにより、Docker の入力と出力が可能になります。
    sudo firewall-cmd --zone=public --add-masquerade --permanent
  6. ファイアウォールを再ロードします
    sudo firewall-cmd --reload
  7. dockerd を再起動します
    sudo systemctl restart docker