OSのバージョン
- Oracle Linux Server release 9.4
※Oracle Linux は RedHat 互換のディストリビューションであるため、他のRHEL系でも代用が可能。
手順
まず、システムパッケージを最新の状態に更新。
sudo dnf update -y
Dockerをインストールするために必要なパッケージをインストール。
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
- yum-utils... パッケージ管理を便利にするための追加機能を提供。
- device-mapper-persistent-data...デバイスマッパー(Device Mapper)に関連するライブラリおよびツールのセットで、主にLVM(Logical Volume Manager)やDockerなどのアプリケーションで使用。このパッケージは、デバイスマッパーのメタデータを管理し、永続的なデバイスマッピングをサポート。
- lvm2...LVM(Logical Volume Manager)に関連するツールのセットで、物理ボリューム(物理ディスクやパーティション)を論理ボリューム(仮想的なディスク)に抽象化し、柔軟にストレージを管理可能。
Dockerの公式リポジトリ(ここでは「rhel」)を追加。
別のディストリビューションのリポジトリを追加する場合は、以下コマンドの--add-repo
のlinux以降のパスを書き換える。
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
念の為、dnf repolist
コマンドで Docker 用リポジトリが追加されているか確認を行う。
[opc@docker ~]$ dnf repolist
repo id repo の名前
docker-ce-stable Docker CE Stable - x86_64
ol9_UEKR7 Oracle Linux 9 UEK Release 7 (x86_64)
ol9_addons Oracle Linux 9 Addons (x86_64)
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64)
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64)
ol9_ksplice Ksplice for Oracle Linux 9 (x86_64)
ol9_oci_included Oracle Linux 9 OCI Included Packages (x86_64)
Docker CE(Community Edition)をインストール。
sudo dnf install -y docker-ce docker-ce-cli containerd.io
インストール完了後、Dockerサービスを起動。
sudo systemctl start docker
sudo systemctl enable docker
Dockerが正常に動作しているか確認。
sudo systemctl status docker
[opc@docker ~]$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Active: active (running) since Wed 2024-07-31 09:50:24 JST; 3h 40min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 10285 (dockerd)
Tasks: 18
Memory: 747.8M
CPU: 31.040s
CGroup: /system.slice/docker.service
├─10285 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
└─15273 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 80
通常、Dockerコマンドを使用するためにはsudoが必要だが、特定のユーザーをDockerグループに追加することで、sudoなしでDockerコマンドを実行できるように設定できる。
以下のコマンドでユーザーをDockerグループに追加。
sudo usermod -aG docker $USER
念の為、現在実行しているユーザーの権限を確認、group内にdockerが登録されれば追加完了となる。
id $USER
uid=1000(opc) gid=1000(opc) groups=1000(opc),4(adm),190(systemd-journal),984(docker)
以下のコマンドを実行して、Dockerが正常にインストールされているか確認する。
docker --version
Docker version 27.1.1, build 6312585
以下のコマンドでDockerのテストコンテナを実行し、インストールが正常に完了したか確認する。
This message shows that your installation appears to be working correctly.
と表示された場合、正常にテストコンテナが実行されたこととなる。
sudo docker run hello-world
[opc@docker ~]$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:1408fec50309afee38f3535383f5b09419e6dc0925bc69891e79d84cc4cdcec6
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/
以上でDockerのインストールが完了。