ウェブサイト検索

AlmaLinux、CentOS、Rocky Linux に Docker をインストールする


AlmaLinux、CentOS、Rocky Linux で Docker Compose を使用して Docker エンジンをインストールするためのステップバイステップ ガイド

先日、Docker エンジンとは何か、 そしてUbuntu に Docker Engine と Docker Compose をインストールする方法について説明しました。今日は、AlmaLinux、CentOS、Rocky Linux などの RHEL ベースのシステムにDocker Compose を使用して Docker Engine をインストールする方法を説明します。

このガイドは、CentOS 8、AlmaLinux 8、および Rocky Linux 8 で正式にテストされています。デモンストレーションの目的で、Proxmox で実行されている AlmaLinux コンテナを使用します。以下に示すすべてのコマンドは、ほとんどの RHEL ベースのシステムで同じです。

Docker の要件

Docker をインストールして構成するには、システムが次の最小要件を満たしている必要があります。

  1. 64 ビット Linux または Windows オペレーティング システム。
  2. Linux を使用している場合、カーネル バージョンは3.10 以降である必要があります。
  3. sudo 権限を持つユーザー アカウント。
  4. システム BIOS でVT (仮想化テクノロジ) サポートが有効になっています。 [読む: CPU が仮想化テクノロジ (VT) をサポートしているかどうかを確認する方法]
  5. システムはインターネットに接続されている必要があります。

Linux でカーネルとアーキテクチャの詳細を確認するには、ターミナルから次のコマンドを実行します。

uname -a

サンプル出力:

Linux Almalinux8CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux

上記の出力でわかるように、私の AlmaLinux システムのカーネル バージョンは5.15.35-3-pve で、システムのアーキテクチャは64 ビットです (x86_64 x86_64 x86_64 GNU) /Linux)。上記の結果の太字を確認してください。

注意: ここでは、Proxmox の AlmaLinux 8 コンテナを使用しています。これが、上記の出力のカーネル バージョンに「pve」という単語が表示される理由です。 AlmaLinux 物理 (または仮想) マシンを使用している場合は、 カーネル バージョンとして5.15.35-3-generic が表示されます。

そうですね、カーネルのバージョンは最小要件よりも高く、アーチは 64 ビットです。したがって、問題なく Docker をインストールして使用できます。

CentOS、AlmaLinux、Rocky Linux に Docker をインストールする

更新された OS を実行していることを確認してください。

1. システムをアップデートする

sudo ユーザーまたは root ユーザーとして次のコマンドを 1 つずつ実行して、CentOS/AlmaLinux/Rocky Linux システムを更新します。

sudo dnf --refresh update
sudo dnf upgrade

2.Dockerリポジトリの追加

リポジトリをセットアップするための yum-config-manager ユーティリティを提供する yum-utils パッケージをインストールします。

sudo dnf install yum-utils

次に、以下に示すように、yum-config-manger を使用して Docker リポジトリを追加します。

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

3.Dockerをインストールする

次のコマンドを使用して、CentOS、AlmaLinux、および Rocky Linux に Docker エンジンをインストールします。

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

Docker パッケージをダウンロードした後、Docker GPG キーをインポートするように求められます。指紋が 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 と一致することを確認し、一致する場合は受け入れます。

Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

CentOS、AlmaLinux、Rocky Linux に Docker をインストールする

Docker のインストールが完了したら、次のコマンドを実行して Docker サービスを有効にして開始します。

sudo systemctl enable docker
sudo systemctl start docker

次のコマンドを使用して、Docker サービスが実行されているかどうかを確認します。

sudo systemctl status docker

サンプル出力:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/system/docker.service.d
           └─zzz-lxc-service.conf
   Active: active (running) since Tue 2022-06-28 08:17:02 UTC; 8s ago
     Docs: https://docs.docker.com
 Main PID: 2748 (dockerd)
    Tasks: 8
   Memory: 28.5M
   CGroup: /system.slice/docker.service
           └─2748 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.167563866Z" level=info msg="ClientConn switching balancer to \"pick_first\""
 module=grpc
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.169600819Z" level=error msg="Failed to built-in GetDriver graph btrfs /var/l
ib/docker"
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.203579593Z" level=info msg="Loading containers: start."
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.350067769Z" level=info msg="Default bridge (docker0) is assigned with an IP 
address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.410223534Z" level=info msg="Loading containers: done."
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415653550Z" level=warning msg="Not using native diff for overlay2, this may 
cause degraded performance for building images: running in a user namespace" storage-driver=overlay2
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415810806Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=ove
rlay2 version=20.10.17
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415902359Z" level=info msg="Daemon has completed initialization"
Jun 28 08:17:02 Almalinux8CT systemd[1]: Started Docker Application Container Engine.
Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.447662377Z" level=info msg="API listen on /var/run/docker.sock"

上記の出力に見られるように、Docker サービスは稼働中です。

4.Dockerのバージョンを確認する

インストールされている Docker のバージョンは、次のコマンドを使用して確認できます。

sudo docker version

サンプル出力:

Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:03:11 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:29 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

AlmaLinux で Docker バージョンを確認する

5. Docker のテスト

先に進んで、Docker が動作しているかどうかをテストしてみましょう。 hello-world docker イメージを実行して、Docker が適切にインストールされ、動作しているかどうかを確認できます。

これを行うには、次を実行します。

sudo docker run hello-world

上記のコマンドは、テスト Docker イメージをダウンロードし、コンテナ内でサンプルのhello_world プログラムを実行します。

以下のような出力が表示されたら、成功です。 Docker は CentOS/AlmaLinux/Rocky Linux システムで正常に動作しています。

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

AlmaLinuxでHello World Dockerコンテナを実行する

Docker を使用する準備ができました。

Docker をインストールしましたが、どうすればよいでしょうか? Docker の基本については、このシリーズの次の記事を参照してください。

  • Docker の使用を開始する

6. Docker をアップグレードする

リポジトリを使用して Docker をインストールしたため、次のコマンドを実行するだけで Docker エンジンを利用可能な最新バージョンにアップグレードできます。

sudo dnf --refresh update
sudo dnf upgrade

Docker Compose をインストールする

Docker Compose は、複数コンテナの Docker アプリケーションを定義して実行するために使用できるツールです。 Compose では、Compose ファイルを使用してアプリケーションのサービスを構成します。その後、単一のコマンドを使用して、構成からすべてのサービスを作成して開始できます。

次のいずれかの方法を使用して Docker Compose をインストールできます。

方法 1 - バイナリを使用して Docker Compose をインストールする

最新の Docker Compose をここからダウンロードします。

これを書いている時点での最新バージョンは2.6.1です。

次のコマンドを実行して、最新の安定した Docker 構成ファイルをダウンロードします。

sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

新しいバージョンが利用可能な場合は、上記のコマンドの数字 v2.6.1 を新しいバージョン番号に置き換えるだけです。バージョン番号の前に 「v」 を付けることを忘れないでください。

最後に、次のコマンドを使用して、バイナリに実行権限を適用します。

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

インストールされている Docker Composer のバージョンを確認するには、次のコマンドを実行します。

docker-compose version
Docker Compose version v2.6.1

方法 2 - PiP を使用して Docker Compose をインストールする

あるいは、PIP を使用して Docker Compose をインストールすることもできます。 Pip は、Python プログラミング言語で書かれたアプリケーションをインストールするために使用される Python パッケージ マネージャーです。

システムに Pip をインストールするには、次のガイドを参照してください。

  • Pip を使用して Python パッケージを管理する方法

pip がインストールされたら、次のコマンドを実行して docker compose をインストールします。次のコマンドは、すべての Linux ディストリビューションで同じです。

pip install docker-compose

Docker Compose をインストールした後、次のコマンドでバージョンを確認できます。

docker-compose --version

以下のような出力が表示されます。

docker-compose version 2.6.1, build 8a1c60f6

おめでとう! Docker Community Edition と Docker Compose が正常にインストールされました。

Docker Compose の入門ガイドを読んで、Docker Compose をリアルタイムで使用してコンテナーを定義および管理する方法を学びます。

  • Linux で Docker Compose を始める

Docker Compose をアップグレードする

Docker Compose をアップグレードするには、新しいパッケージ ファイルをダウンロードし、方法 1 に示すインストール手順を繰り返すだけです。 Pip を使用して Compose をインストールした場合は、次のコマンドを使用して Docker Compose をアップグレードできます。

pip install --upgrade docker-compose

Docker エンジンをアンインストールする

CentOS、AlmaLinux、および Rock Linux システムから Docker エンジンを削除するには、次のコマンドを実行します。

sudo dnf remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

システム上の Docker イメージ、コンテナー、ボリューム、またはカスタマイズされた構成ファイルは、自動的には削除されません。

次のコマンドを使用して、すべてのイメージ、コンテナー、およびボリュームを手動で削除する必要があります。

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Docker Compose をアンインストールする

バイナリ ファイルを使用して Compose をインストールした場合は、それを /usr/local/bin/ パスから削除するだけです。

sudo rm /usr/local/bin/docker-compose

PiP を使用して Compose をインストールした場合は、次のコマンドを実行して Docker Compose を削除します。

pip uninstall docker-compose

結論

私たちは、CentOS、AlmaLinux、Rocky Linux に Docker Engine と Docker Compose をインストールする方法を知っています。また、基本的な hello-world docker イメージを実行して Docker エンジンをテストする方法も学びました。最後に、Docker エンジンと Docker Compose が不要になったときにそれらを削除する方法を説明しました。

推奨読書:

  • DockSTARTer を使用して Docker と Docker Compose をセットアップする
  • 実行中の Docker コンテナを自動的に更新する方法
  • ctop – Linux コンテナ用のコマンドライン監視ツール
  • Porttainer – Docker を管理する最も簡単な方法
  • PiCluster – シンプルな Web ベースの Docker 管理アプリケーション
  • Dockly - ターミナルから Docker コンテナを管理

リソース:

  • Docker Web サイト

無料の Docker 電子ブック:

  • 無料の電子書籍: 「Docker コンテナ化クックブック」

関連記事