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 をインストールして構成するには、システムが次の最小要件を満たしている必要があります。
- 64 ビット Linux または Windows オペレーティング システム。
- Linux を使用している場合、カーネル バージョンは3.10 以降である必要があります。
sudo
権限を持つユーザー アカウント。- システム BIOS でVT (仮想化テクノロジ) サポートが有効になっています。 [読む: CPU が仮想化テクノロジ (VT) をサポートしているかどうかを確認する方法]
- システムはインターネットに接続されている必要があります。
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 コンテナ化クックブック」