MIRACLE LINUX 8.4 に Docker をインストールしてみた
使用環境
- MIRACLE LINUX 8.4 (GUIインストール)
- Docker
MIRACLE LINUX とは
まず最初に、今回使用したディストリビューションである MIRACLE LINUXの紹介をします!
MIRACLE LINUX とはサイバートラスト社が開発を行っている RHEL の派生ディストリビューション(クローン)です。
これまでは、有償ライセンスでの提供を行っていましたが、MIRACLE LINUX 8.4 からはライセンス費用を無償で公開しています!
このブログで少しでもMIRACLE LINUX に興味を持っていただけたらぜひ一度インストールをしてみてください!
MIRACLE LINUX 8.4 のインストールはこちらの記事でも紹介しています!
Docker とは
Docker とは Docker社が開発しているコンテナ型の仮想環境構築プラットフォームです。
コンテナ型のため仮想マシンの構築に比べ軽量です。また、作成したイメージの共有を行うことが可能で、他のマシンでも同様の環境を使用することが出来ます。
Docker のインストール
ここからは、実際に Docker をインストールする手順を解説していきます。
1. 必要パッケージの確認
miraclelinux-repos パッケージがインストールされていることを以下コマンドで確認します。
GUI インストールの場合はデフォルトでインストールされているので、今回はこのまま進めます。
インストールされていない場合はパッケージのインストールを行ってください。
$ rpm -qa | grep miraclelinux-repos
miraclelinux-repos-8.4-2.el8.x86_64
2.不要パッケージの削除
podman パッケージ及び、 runc パッケージが GUI インストールではデフォルトで入っています。
このパッケージは Docker をインストールする上で削除が必要なため、以下手順でパッケージの削除を行います。
$ rpm -qa | grep podman
podman-catatonit-3.0.1-6.module+el8+1261+01be30aa.x86_64
cockpit-podman-29-2.module+el8+1261+01be30aa.noarch
podman-3.0.1-6.module+el8+1261+01be30aa.x86_64
$ rpm -qa | grep runc
runc-1.0.0-70.rc92.module+el8+1261+01be30aa.x86_64
# dnf remove podman runc
依存関係が解決しました。
=============
パッケージ Arch バージョン Repo サイズ
=============
削除中:
podman x86_64 3.0.1-6.module+el8+1261+01be30aa @AppStream 46 M
runc x86_64 1.0.0-70.rc92.module+el8+1261+01be30aa @AppStream 11 M
依存関係パッケージの削除:
buildah x86_64 1.19.7-1.module+el8+1261+01be30aa @AppStream 27 M
cockpit-podman noarch 29-2.module+el8+1261+01be30aa @AppStream 3.8 M
未使用の依存関係の削除:
conmon x86_64 2:2.0.26-1.module+el8+1261+01be30aa @AppStream 164 k
container-selinux noarch 2:2.158.0-1.module+el8+1261+01be30aa @AppStream 47 k
containers-common x86_64 1:1.2.2-8.module+el8+1261+01be30aa @AppStream 299 k
criu x86_64 3.15-1.module+el8+1261+01be30aa @AppStream 1.4 M
fuse-overlayfs x86_64 1.4.0-2.module+el8+1261+01be30aa @AppStream 145 k
fuse3 x86_64 3.2.1-12.el8 @anaconda 102 k
fuse3-libs x86_64 3.2.1-12.el8 @anaconda 323 k
libnet x86_64 1.1.6-15.el8 @AppStream 251 k
libslirp x86_64 4.3.1-1.module+el8+1261+01be30aa @AppStream 129 k
podman-catatonit x86_64 3.0.1-6.module+el8+1261+01be30aa @AppStream 760 k
slirp4netns x86_64 1.1.8-1.module+el8+1261+01be30aa @AppStream 98 k
トランザクションの概要
===========
削除 15 パッケージ
解放された容量: 91 M
これでよろしいですか? [y/N]: y
:
:
削除しました:
buildah-1.19.7-1.module+el8+1261+01be30aa.x86_64
cockpit-podman-29-2.module+el8+1261+01be30aa.noarch
conmon-2:2.0.26-1.module+el8+1261+01be30aa.x86_64
container-selinux-2:2.158.0-1.module+el8+1261+01be30aa.noarch
containers-common-1:1.2.2-8.module+el8+1261+01be30aa.x86_64
criu-3.15-1.module+el8+1261+01be30aa.x86_64
fuse-overlayfs-1.4.0-2.module+el8+1261+01be30aa.x86_64
fuse3-3.2.1-12.el8.x86_64
fuse3-libs-3.2.1-12.el8.x86_64
libnet-1.1.6-15.el8.x86_64
libslirp-4.3.1-1.module+el8+1261+01be30aa.x86_64
podman-3.0.1-6.module+el8+1261+01be30aa.x86_64
podman-catatonit-3.0.1-6.module+el8+1261+01be30aa.x86_64
runc-1.0.0-70.rc92.module+el8+1261+01be30aa.x86_64
slirp4netns-1.1.8-1.module+el8+1261+01be30aa.x86_64
完了しました!
3.リポジトリの追加
以下コマンドを実行し、Docer のインストールに必要なリポジトリの追加を行います。
リポジトリが追加されていることが確認出来たらインストールします。
# dnf repolist
repo id repo の名前
8-latest-AppStream 8-latest-AppStream
8-latest-BaseOS 8-latest-BaseOS
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
repo の追加: https://download.docker.com/linux/centos/docker-ce.repo
# dnf repolist
repo id repo の名前
8-latest-AppStream 8-latest-AppStream
8-latest-BaseOS 8-latest-BaseOS
docker-ce-stable Docker CE Stable - x86_64
4.Docker パッケージのインストール
以下のコマンドを実行し Docer を使用するのに必要なパッケージのインストールを行います。
# dnf install docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64 105 kB/s | 24 kB 00:00
依存関係が解決しました。
=====================
パッケージ Arch バージョン リポジトリー サイズ
======================
インストール:
containerd.io x86_64 1.6.4-3.1.el8 docker-ce-stable 33 M
docker-ce x86_64 3:20.10.15-3.el8 docker-ce-stable 21 M
docker-ce-cli x86_64 1:20.10.15-3.el8 docker-ce-stable 29 M
依存関係のインストール:
container-selinux noarch 2:2.173.0-1.module+el8+1391+dc3b7306
8-latest-AppStream 55 k
docker-ce-rootless-extras x86_64 20.10.15-3.el8 docker-ce-stable 4.7 M
docker-scan-plugin x86_64 0.17.0-3.el8 docker-ce-stable 3.8 M
fuse-overlayfs x86_64 1.8-1.module+el8+1391+dc3b7306
8-latest-AppStream 72 k
fuse3 x86_64 3.2.1-12.el8 8-latest-BaseOS 49 k
fuse3-libs x86_64 3.2.1-12.el8 8-latest-BaseOS 93 k
libcgroup x86_64 0.41-19.el8 8-latest-BaseOS 69 k
libslirp x86_64 4.4.0-1.module+el8+1391+dc3b7306
8-latest-AppStream 69 k
slirp4netns x86_64 1.1.8-1.module+el8+1391+dc3b7306
8-latest-AppStream 50 k
:
:
fuse3-libs-3.2.1-12.el8.x86_64
libcgroup-0.41-19.el8.x86_64
libslirp-4.4.0-1.module+el8+1391+dc3b7306.x86_64
slirp4netns-1.1.8-1.module+el8+1391+dc3b7306.x86_64
完了しました!
パッケージが問題なくインストールされていることを確認します。
"docker-ce" "docker-ce-cli" "containerd.io" が確認出来たら問題ありません。
# rpm -qa | grep docker-ce
docker-ce-rootless-extras-20.10.15-3.el8.x86_64
docker-ce-20.10.15-3.el8.x86_64
docker-ce-cli-20.10.15-3.el8.x86_64
# rpm -qa | grep containerd.io
containerd.io-1.6.4-3.1.el8.x86_64
5.Docker サービス の起動
Docker のインストールが完了したら、Docker が現在起動しているのか確認をします。
デフォルトでは起動していないため、以下コマンドを実行して起動させます。
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor pre>
Active: inactive (dead)
Docs: https://docs.docker.com
# systemctl start docker
問題なく Docker が起動したことが確認できたら、実際の動作確認に移ります。
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor pre>
Active: active (running) since Tue 2022-05-10 16:46:31 JST; 2s ago
Docs: https://docs.docker.com
Main PID: 35740 (dockerd)
Tasks: 7
Memory: 28.8M
CGroup: /system.slice/docker.service
└─35740 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/conta>
:
:
6.コンテナの追加
Docker を起動しただけの状態では、コンテナが追加されていないことを確認します。
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
今回は ” mynginx1 ” コンテナを追加して動作の確認を行います。
以下のコマンドを実行してコンテナを追加します。
# docker run --rm --name mynginx1 -p 80:80 -d nginx以下のコマンドでコンテナが起動していることを確認します。
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
1fe172e4850f: Pull complete
35c195f487df: Pull complete
213b9b16f495: Pull complete
a8172d9e19b9: Pull complete
f5eee2cb2150: Pull complete
93e404ba8667: Pull complete
Digest: sha256:859ab6768a6f26a79bc42b231664111317d095a4f04e4b6fe79ce37b3d199097
Status: Downloaded newer image for nginx:latest
517f953eca4b4d28d6f5c4029f1da6f88483bf93e8978af93b1693ebcd49ec49
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
517f953eca4b nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp,
:::80->80/tcp mynginx1
nginx が起動していることを ” http://localhost " にアクセスし、確認します。
以下のページが表示されることが確認出来たらコンテナ追加及び起動が問題なく行えたことが分かります。
7.コンテナの停止
以下のコマンドを実行し、コンテナが停止することを確認します。
# docker stop mynginx1
mynginx1
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
nginx が停止していることを ” http://localhost " にアクセスし、確認します。
以下のページが表示されることが確認出来たら問題なく停止したことが分かります。
まとめ
事前に削除する必要があるパッケージさえ分かれば、リポジトリを追加するだけで簡単に Docker をインストールすることが可能でした!
コンテナ型環境の仮想環境に関するブログを次回も掲載しますので、興味がありましたらぜひチェックしてください!
MIRACLE LINUX 関連ページ
MIRACLE LINUX に興味を持っていただけたら、ぜひ以下のページも合わせてご確認ください!
次回予告
次回は、RHEL 系で使用が推奨されている Podman について紹介したいと思います。
「MIRACLE LINUX 8.4 で Podman を実行してみた」