🐳

RHEL9ではじめてのDocker

2022/08/18に公開

チュートリアルどおり実施したのみだが、覚書き。

前置き

翻訳はすべてDeepL翻訳を使っている。

環境

VPS: Vultr
OS: RHEL9
ローカルサーバ:Nginx

Dockerをインストール

Docker公式のRHEL向け解説を参考に進め……たいところだが、

We currently only provide packages for RHEL on s390x (IBM Z). Other architectures are not yet supported for RHEL, but you may be able to install the CentOS packages on RHEL. Refer to the Install Docker Engine on CentOS page for details.

現在、s390x (IBM Z) 上の RHEL 用のパッケージのみを提供しています。その他のアーキテクチャのRHELにはまだ対応していませんが、CentOSのパッケージをRHELにインストールできる可能性があります。詳しくは「CentOSにDocker Engineをインストールする」のページを参照してください。

どうも一般的なパッケージではないようだ。
ということで、CentOS向け解説を読んで進めることにする。ほぼほぼ同じなので大丈夫だろう。

Dockerリポジトリをインストール

まずはDockerが提供するリポジトリをインストールする。
しかし公式にyumの例しかない。私はdnf派だ。こまった。
検索すると、Fedora向けの解説にdnfの例があったので、使ってみた。

$ # sudo dnf -y install dnf-plugins-core # 公式だとdnfプラグイン追加しているけど、無くても大丈夫でした
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

リポジトリ一覧を確認する。

$ sudo dnf repolist
Updating Subscription Management repositories.
repo id                                                                            repo name
docker-ce-stable                                                                   Docker CE Stable - x86_64
rhel-9-for-x86_64-appstream-rpms                                                   Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-baseos-rpms                                                      Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)

一番上、docker-ce-stableがDockerリポジトリだ。

Dockerエンジンをインストール

いよいよ本体をインストールする。
下記コマンドで最新版のDockerエンジン、Dockerコマンドライン、Docker-compose(組み込みプラグイン)をインストールする。

$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
~中略~
Complete!

色々聞かれるがy連打。
Complete! でインストール完了。

Docker起動

$ sudo systemctl start docker

Dockerが提供するテスト用のイメージhello-worldを起動し、正常にインストールされたか試してみる。

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:53f1bbee2f52c39e41682ee1d388285290c5c8a76cc92b42687eecf38e0af3f0
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 from Docker!
このメッセージは、インストールが正常に動作しているように見えることを示しています。

このメッセージを生成するために、Dockerは次のステップを踏みました。

  1. DockerクライアントがDockerデーモンにコンタクトした。
  2. Docker デーモンが Docker Hub から "hello-world" イメージを取り出した。
    (amd64)
  3. Dockerデーモンはそのイメージから新しいコンテナを作成し、現在読んでいる出力を生成する実行ファイルを実行します。
  4. Dockerデーモンはその出力をDockerクライアントにストリーミングし、クライアントはそれをあなたの端末に送信します。

もっと野心的なことを試すには、Ubuntuのコンテナを次のように実行します。
docker run -it ubuntu bash で実行できます。

無料のDocker IDでイメージの共有、ワークフローの自動化など。
https://hub.docker.com/

より多くの例とアイデアについては、以下をご覧ください。
https://docs.docker.com/get-started/

無事にhello-worldイメージを起動できたようだ。

Discussion