0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redhad8でDockerを使えるようにする

Posted at

はじめに

Red Hat Enterprise Linux 8はDocker非対応。
ドキュメントには以下の記載があります。

Red Hat では、RHEL 8 から Docker コンテナーエンジンと、docker コマンドが削除されました。
RHEL で Docker を使用する場合は、異なるアップストリームプロジェクトから Docker を取得できますが、RHEL 8 では対応していません。

それでもDockerを使いたい、、
podmanを使うことでdockerが使えるとのことなので、dockerコマンドとdocker-composeを使えるように設定してみます。

Red Hat Enterprise Linux 8 コンテナーの構築、実行、および管理

dockerコマンドを使えるようにする

まず、Podmanをインストールします。

[root@rhel8 ~]$ yum module install -y container -tools
usage: yum module [-c [config file]] [-q] [-v] [--version]
                  [--installroot [path]] [--nodocs] [--noplugins]
                  [--enableplugin [plugin]] [--disableplugin [plugin]]
                  [--releasever RELEASEVER] [--setopt SETOPTS] [--skip-broken]
                  [-h] [--allowerasing] [-b | --nobest] [-C] [-R [minutes]]
                  [-d [debug level]] [--debugsolver] [--showduplicates]
                  [-e ERRORLEVEL] [--obsoletes]
                  [--rpmverbosity [debug level name]] [-y] [--assumeno]
                  [--enablerepo [repo]] [--disablerepo [repo] | --repo [repo]]
                  [--enable | --disable] [-x [package]]
                  [--disableexcludes [repo]] [--repofrompath [repo,path]]
                  [--noautoremove] [--nogpgcheck] [--color COLOR] [--refresh]
                  [-4] [-6] [--destdir DESTDIR] [--downloadonly]
                  [--comment COMMENT] [--bugfix] [--enhancement]
                  [--newpackage] [--security] [--advisory ADVISORY]
                  [--bz BUGZILLA] [--cve CVES]
                  [--sec-severity {Critical,Important,Moderate,Low}]
                  [--forcearch ARCH] [--enabled] [--disabled] [--installed]
                  [--profile] [--available] [--all]
                  <modular command> [module-spec [module-spec ...]]
yum module: error: unrecognized arguments: -tools

バージョン4.6.1のPodmanがインストールできました。

[root@rhel8 ~]$ podman --version
podman version 4.6.1

次にdockerパッケージをインストールします。
途中で出てくる確認はすべて「y」です。

[root@rhel8 ~]# yum install podman-docker
CentOS Stream 8 - AppStream                     8.5 MB/s |  35 MB     00:04    
CentOS Stream 8 - BaseOS                         10 MB/s |  57 MB     00:05    
CentOS Stream 8 - Extras                         22 kB/s |  18 kB     00:00    
CentOS Stream 8 - Extras common packages         13 kB/s | 6.9 kB     00:00    
依存関係が解決しました。
================================================================================
 パッケージ      Arch     バージョン                          Repo        サイズ
================================================================================
インストール:
 podman-docker   noarch   3:4.6.1-5.module_el8+712+4cd1bd69   appstream   153 k

トランザクションの概要
================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 153 k
インストール後のサイズ: 10 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
podman-docker-4.6.1-5.module_el8+712+4cd1bd69.n 875 kB/s | 153 kB     00:00    
--------------------------------------------------------------------------------
合計                                            145 kB/s | 153 kB     00:01     
CentOS Stream 8 - AppStream                     1.6 MB/s | 1.6 kB     00:00    
GPG 鍵 0x8483C65D をインポート中:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                        1/1 
  インストール中   : podman-docker-3:4.6.1-5.module_el8+712+4cd1bd69.noar   1/1 
  scriptletの実行中: podman-docker-3:4.6.1-5.module_el8+712+4cd1bd69.noar   1/1 
  検証中           : podman-docker-3:4.6.1-5.module_el8+712+4cd1bd69.noar   1/1 

インストール済み:
  podman-docker-3:4.6.1-5.module_el8+712+4cd1bd69.noarch                        

完了しました!

これでdockerコマンドが使えるようになっているはずなので、動作確認していきます。

[root@rhel8 ~]# docker --version
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
podman version 4.6.1
[root@rhel8 ~]# 
[root@rhel8 ~]# [root@rhel8 ~]# docker container ls
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES

dockerコマンドが使えるようになりました!!

hello-worldコンテナを立ててみる

dockerが使えるようになったので、hello-worldコンテナを立ててみます。

コンテナを起動する
$ docker run [オプション]

[root@rhel8 ~]# docker run hello-world
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Resolved "hello-world" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull quay.io/podman/hello:latest...
Getting image source signatures
Copying blob d08b40be6878 done  
Copying config e2b3db5d4f done  
Writing manifest to image destination
!... Hello Podman World ...!

         .--"--.           
       / -     - \         
      / (O)   (O) \        
   ~~~| -=(,Y,)=- |         
    .---. /`  \   |~~      
 ~/  o  o \~~~~.----. ~~   
  | =(X)= |~  / (O (O) \   
   ~~~~~~~  ~| =(Y_)=-  |   
  ~~~~    ~~~|   U      |~~ 

Project:   https://github.com/containers/podman
Website:   https://podman.io
Documents: https://docs.podman.io
Twitter:   @Podman_io

起動できたようなので、イメージとコンテナを確認していきます。

Dockerイメージの一覧を表示
$ docker image ls [オプション]

Dockerコンテナの一覧を表示
$ docker container ls [オプション]

※デフォルトでは実行中のコンテナのみが表示される
 「-a」のオプションをつけることで、停止中のコンテナも表示される

[root@rhel8 ~]# docker image ls
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
REPOSITORY            TAG         IMAGE ID      CREATED       SIZE
quay.io/podman/hello  latest      e2b3db5d4fdf  3 months ago  82.3 kB
[root@rhel8 ~]# 
[root@rhel8 ~]# 
[root@rhel8 ~]# docker container ls -a
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
CONTAINER ID  IMAGE                        COMMAND               CREATED             STATUS                         PORTS       NAMES
6a8f6a920466  quay.io/podman/hello:latest  /usr/local/bin/po...  About a minute ago  Exited (0) About a minute ago              happy_sutherland

docker-composeをインストール

ついでにdocker-composeをインストールしていきます。

[root@rhel8 ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 12.1M  100 12.1M    0     0  9296k      0  0:00:01  0:00:01 --:--:-- 18.9M
[root@rhel8 ~]# 
[root@rhel8 ~]# 
[root@rhel8 ~]# chmod +x /usr/local/bin/docker-compose
[root@rhel8 ~]# 
[root@rhel8 ~]# 
[root@rhel8 ~]# ls -l /usr/local/bin/ | grep docker-compose
-rwxr-xr-x. 1 root root 12737304 12月 21 20:30 docker-compose
[root@rhel8 ~]# 
[root@rhel8 ~]# 
[root@rhel8 ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

コンテナ間通信を可能にする

Podman は、デフォルトではコンテナ名でコンテナ間通信ができない、、
podman-plugins パッケージの dnsname プラグインをインストールすることで、コンテナ名で通信できるようになります。

[root@rhel8 ~]# sudo yum install podman-plugins
メタデータの期限切れの最終確認: 0:05:16 前の 2023年12月21日 20時27分34秒 に実施しました。
パッケージ podman-plugins-3:4.6.1-5.module_el8+712+4cd1bd69.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!

これでRHEL8でもDockerが使えるようになりました!!

さいごに

dockerコマンドを打つ度出てくる以下のメッセージは、メッセージの通りに「/etc/containers/nodocker」を作成することで、抑制できます。

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?