AlmaLinux 9.3にDockerをインストールする【2024年2月】

installing-docker-on-almalinux-9-3 install

はじめに

この記事では、Almalinux 9.3にDockerをインストールする方法について説明します。dockerをインストールした後は、一般ユーザでも実行できるようにします。そのあとは、dockerデーモンがシステム起動時に立ち上がるように設定します。

Almalinux

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

この記事で扱うAlmalinuxのバージョンは9.3です。バージョン9.3は2023年11月23年にリリースされました。

Docker

Dockerは、コンテナ仮想化技術を利用してアプリケーションを簡単かつ効率的にデプロイするためのオープンソースプラットフォームです。

メリットは大きく2つあります。2つメリットとは環境構築の容易さと高い移植性です。このメリットは開発効率の向上、インフラコストの削減、セキュリティの向上など、さまざまな効果をもたらします。

動作環境

  • docker 25.0.2
  • AlmaLinux 9.3

インストール方法

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

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

インストールする

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

リポジトリの登録

リポジトリの登録
  • step 1

    リポジトリの確認(オプション)

    まずは、現在登録されているリポジトリを確認します。2つの方法を紹介しますが、どちらか1つの方法で確認すれば大丈夫です。1つ目の方法はdnfコマンドとyumコマンド両方紹介します。

    1つ目はdnf repolistコマンドを使う方法です。今は、実行しても何も表示されていません。今はまだ登録されていないことがわかります。

    $ dnf repolist | grep docker
    
    

    1つ目はyum repolistコマンドを使う方法です。今は、実行しても何も表示されていません。今はまだ登録されていないことがわかります。

    $ yum repolist | grep docker
    
    

    2つ目は、/etc/yum.repos.dディレクトリを確認する方法です。こちらも実行しても何も表示されていません。今はまだ登録されていないことがわかります。

    $ ls /etc/yum.repos.d/ | grep docker
    
    
  • step 2

    リポジトリの登録

    次に、実際にリポジトリの登録を行います。

    dnf config-managerコマンドでリポジトリを登録します。すると、「Adding repo from: ・・・」、とメッセージが表示されます。これでリポジトリの登録は完了です。

    $ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

    yum config-managerコマンドでリポジトリを登録します。すると、「Adding repo from: ・・・」、とメッセージが表示されます。これでリポジトリの登録は完了です。

    $ sudo yum config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
  • step 3

    リポジトリの確認(オプション)

    最後に、もう一度リポジトリの確認を行います。2つの方法を紹介します。どちらか1つの方法で確認すれば大丈夫です。

    まずは1つ目の方法、dnf repolistコマンドでリポジトリを確認します。docker-ce-stabeという名前のリポジトリが追加されていることがわかります。

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

    まずは1つ目の方法、yum repolistコマンドでリポジトリを確認します。docker-ce-stabeという名前のリポジトリが追加されていることがわかります。

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

    次に2つ目の方法、/etc/yum.repos.dディレクトリを確認します。

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

Docker Engineのインストール

インストールの流れ
  • step 1
    インストール

    実際にdockerをインストールします。

    $ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    $ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • step 2
    動作確認

    インストールが完了したら、動作確認をしてみます。

    $ docker --version
    Docker version 25.0.2, build 29cf629

    dockerバージョン25.0.2がインストールされていることが確認できました。

dockerデーモンの起動

  • step 1
    dockerデーモンの確認(オプション)

    ここでは、docker(デーモン)が起動しているか確認してみます。systemctl status dockerを実行します。

    $ systemctl status docker

    Active項目がinactive (dead)になっているので、起動していないことがわかります。

  • step 2
    dockerデーモンの起動

    それでは、docker(デーモン)を起動してみましょう。systemctl start dockerを実行します。

    $ sudo systemctl start docker
  • step 3
    dockerデーモンの確認(オプション)

    最後に、もう一度、docker(デーモン)が起動しているか確認してみましょう。systemctl status dockerを実行します。

    $ systemctl status docker

    Active項目がactive (running)になっているので、起動していることがわかります。

動作確認

それでは、実行してみましょう。sudo docker run hello-worldとコマンドを入力します。デフォルトでは管理者権限が必要になります。

$ sudo docker run hello-world

以下のようにHello from Docker!と表示されていればOKです。

解説

docker runコマンドを実行すると、イメージのダウンロード、コンテナの作成、コンテナの実行が行われます。もし、イメージがローカルに存在すればそれを使います。

上の例では初回実行のため、hello-worldという名前のイメージをダウンロードしてきます。そのため、最初の5行が表示されます。2回目以降はローカルに保存されたものを使うため、最初の5行は表示されなくなります。

docker compose

次はdocker composeを使えるようにします。使えるようにしますといっても実はもうできるようになっています。

$ docker compose version
Docker Compose version v2.24.5]

$ docker compose --help

Usage:  docker compose [OPTIONS] COMMAND

Define and run multi-container applications with Docker.
・
・
・

上の方でdockerをインストールした時にdocker-compose-pluginパッケージもインストールしています。そのためdocker composeが使えるようになっています。

解説

dockerのバージョン20の頃からcomposeはdockerのサブコマンドとして使えるようになっています。

昔からの方法で、curlでcomposeを手動でダウンロードしてくる方法でも可能ですが、自動アップデートが不可能になってしまいます。そのため、docker-compose-pluginをインストールする方法を公式サイトでも推奨しています。

# 昔からの方法
$ curl -SL https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

インストール後の設定

一般ユーザでdockerを実行する

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

毎回sudoをつけるのは面倒なので、sudo無しで実行できるように設定します。dockerグループにユーザを追加します。

ユーザをdockerグループに所属させる
  • step 1
    所属グループの確認(オプション)

    まず、ユーザが現在所属しているグループを調べます。

    $ groups
    higmasan wheel

    まだdockerグループには所属していません。

  • step 2
    dockerグループに追加する

    次に、ユーザをdockerグループに追加します。これは管理者権限が必要です。

    $ sudo usermod -aG docker $USER

    現在のシェルセッションにはグループの変更が反映されていません。反映するために、su – $USERコマンドで新しくシェルセッションを立ち上げましょう。マシンの再起動でも良いです。

    $ su - $USER
  • step 3
    所属グループの確認(オプション)

    それでは、所属グループを確認してみましょう。

    $ groups
    higmasan wheel docker

    dockerグループに追加されているのが確認できました。

  • STEP 4
    動作確認

    最後に、sudo無しで実行してみましょう。

    $ docker run hello-world

    以下のようにHello from Docker!と表示されていればOKです。

Dockerデーモンを自動起動させる

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

  • STEP 1
    自動起動の設定

    systemctl enable <デーモン名>を実行します。

    $ sudo systemctl enable docker
    Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
  • STEP 2
    確認

    systemctl status <デーモン名>で確認してみましょう。

    $ systemctl status docker

    赤枠のところがenabledになっていば大丈夫です。システムの起動時にdockerも起動するようになっています。

アンインストール

もし、アンインストールしたい場合があれば、次のようにします。dnf remove <パッケージ>でパッケージを削除します。

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

まとめ

この記事では、Almalinux 9.3にDockerをインストールする方法について説明しました。dockerをインストールした後は、一般ユーザでも実行できるようにしました。そのあとは、dockerデーモンがシステム起動時に立ち上がるように設定しました。

コメント