現在位置: ホーム / みらくるブログ / MIRACLE LINUX 8.4 に Docker をインストールしてみた

MIRACLE LINUX 8.4 に Docker をインストールしてみた

RHEL 系では現在 Podman の使用が推奨されており、MIRACLE LINUX でも推奨は Podman としています。 しかし、Docker が使いたいという方はまだ多いと思います。 そこで、今回は 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 を実行してみた」

タグ: