はじめに
この記事では、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になっていれば自動で起動するようになっています。
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
コメント