AlmaLinux 9.1にDockerをインストールする

almalinux

はじめに

この記事では、Almalinux 9.1にDockerをインストールする方法について説明します。Dockerを使用することで、アプリケーションのデプロイが簡単になります。おかげで、開発プロセスをスムーズにすることができます。

Docker

Dockerは、コンテナ仮想化技術を利用してアプリケーションを簡単かつ効率的にデプロイするためのオープンソースプラットフォームです。アプリケーションの開発、テスト、デプロイが簡単になります。また、アプリケーションの依存関係の問題を解決することができ、開発者やシステム管理者にとって非常に便利なツールとなっています。

Almalinux

Almalinuxは、CentOSから派生したLinuxディストリビューションです。企業向けに安定性とセキュリティ性に重点を置いて開発されています。Red Hat Enterprise Linux(RHEL)と高い互換性があり、RHELに依存するアプリケーションを実行することができます。一方、Rocky Linuxは、CentOSから派生した別のLinuxディストリビューションであり、RHELとの互換性を維持することを目的としています。現在では、Rocky LinuxとAlmalinuxの両方が、CentOSのサポート終了後の代替OSとして注目されています。

Almalinuxは、企業向けに設計された信頼性の高いOSであり、Dockerの実行に適した環境を提供します。Rocky Linuxよりも早くリリースされています。そのため、開発の進行状況がより進んでいます。さらに、セキュリティパッチやアップデートの提供がより早く行われるという利点があります。また、Almalinuxは、Red Hatとの提携関係を活用して、RHELに近い機能やパッケージを提供することができます。

動作環境

  • AlmaLinux 9.1
  • docker 23.0.1

インストール方法

公式サイトによるとDockerは次の3つの方法でインストールできます。

  • Dockerのリポジトリを登録してそこからインストールする(推奨される方法)
  • RPMパッケージをダウンロードしてきて手動でインストールする(アップグレードを手動で管理しなければならないが、インターネットにアクセスできないようなホストにもインストールできる)
  • 自動化されたコンビニエンススクリプトを使用してインストールする(テストや開発環境用)

Dockerのリポジトリからインストールする

この記事では推奨されるDockerのリポジトリを登録してそこからインストールする方法を使います。

リポジトリの登録

yum-utilsパッケージをインストールします。このパッケージに含まれるyum-config-managerがリポジトリの設定に必要になります。

$ sudo yum install -y yum-utils

yum-config-managerコマンドでリポジトリをセットアップします。

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
リポジトリの追加

リポジトリが追加されたことの確認はyum repolistコマンドでできます。

$ yum repolist | grep docker
docker-ce-stable                    Docker CE Stable - x86_64

または、/etc/yumrepos.dディレクトリ以下にレポジトリ定義ファイルを調べることでも確認できます。

$ ls /etc/yum.repos.d/docker-ce.repo 
/etc/yum.repos.d/docker-ce.repo

Docker Engineのインストール

それでは、dockerをインストールしましょう。以下のコマンドを実行します。

$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

インストールの途中でGPG鍵の確認が入ります。yを入力して次に進みましょう。

Docker CE Stable - x86_64                                                                                                                 14 kB/s | 1.6 kB     00:00    
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

インストール直後はdockerデーモンが動いていません。dockerデーモンを起動しましょう。

$ sudo systemctl start docker

動作確認

docker run hello-wordとコマンドを入力してみましょう。以下のようにHello from Docker!とどこかで表示されていればOKです。

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

インストール後の設定

非rootユーザでDockerを管理する

Dockerデーモンは、TCPポートではなく、Unixソケットにバインドします。デフォルトでは、Unixソケットを所有するのはrootユーザです。

Dockerデーモンは常にrootユーザーとして実行されます。そのため、他のユーザはsudoを使用してのみアクセスできます。さきほどの動作確認でもsudoをつけたのはこのためです。

sudoをつけたくない場合は、dockerというUnixグループを作成し、そこにユーザーを追加します。Dockerデーモンが起動すると、dockerグループのメンバーからアクセスできるUnixソケットが作成されます。

それでは、現在のユーザをdockerグループに追加してみましょう。usermodコマンドを使います。

$ sudo usermod -aG docker $USER

グループの変更を有効にする。

$ newgrp docker

それでは、docker runコマンドで動作確認してみましょう。Hello from Docker!を表示されたと思います。

$ docker run hello-world

Hello from Docker!

Dockerデーモンを自動的に起動する

次は、システムの起動時にdockerデーモンが自動で起動するように設定しましょう。

$ sudo systemctl enable docker

systemctrl statusコマンドでdockerデーモンの状態を表示します。赤枠のがenabledになっていれば自動で起動するようになっています。

almalinx-docker-enable
docker enable

Dockerのアンインストール

もし、Dokcerをアンインストールしたい場合があれば、次のようにします。

$ sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd

コメント