LoginSignup
1
0

RHEL9にDockerをセットアップする

Last updated at Posted at 2024-01-28

前書き

RHEL9にDocker(podman)をセットアップする時のメモです。

環境確認

OSを確認:RHEL9 64bit

$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.3 (Plow)
$ arch
x86_64

Docker(podman)をインストール

Red Hat では、RHEL 9 から Docker コンテナーエンジンと、docker コマンドが削除されました。

RHEL で Docker を使用する場合は、異なるアップストリームプロジェクトから Docker を取得できますが、RHEL 9 では対応していません。

Dockerの変わりに、podman-docker パッケージをインストールできます。docker コマンドを実行するたびに、実際には podman コマンドが実行されます。

ちなみに、podman以外、Red Hat は一連のコマンドラインツールを提供します。これには、以下が含まれます。

  • Podman - Pod およびコンテナーイメージの直接管理 (run、stop、start、ps、attach、exec など)

  • buildah - コンテナーイメージの構築、プッシュ、および署名

  • skopeo - イメージのコピー、検証、削除、および署名

  • runc - podman および buildah へのコンテナーの実行機能と構築機能の提供

  • crun - ルートレスコンテナーの柔軟性、制御、セキュリティーを向上するために設定可能なオプションのランタイム。

  • dockerをインストールする

$ sudo yum install docker -y
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:15:09 前の 2024年01月28日 15時59分26秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ    Arch   バージョン         リポジトリー                     サイズ
================================================================================
インストール:
 podman-docker noarch 2:4.6.1-7.el9_3    rhel-9-for-x86_64-appstream-rpms 106 k

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

ダウンロードサイズの合計: 106 k
インストール後のサイズ: 10 k
パッケージのダウンロード:
podman-docker-4.6.1-7.el9_3.noarch.rpm          131 kB/s | 106 kB     00:00    
--------------------------------------------------------------------------------
合計                                            131 kB/s | 106 kB     00:00     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1 
  インストール中   : podman-docker-2:4.6.1-7.el9_3.noarch                   1/1 
  scriptletの実行中: podman-docker-2:4.6.1-7.el9_3.noarch                   1/1 
  検証             : podman-docker-2:4.6.1-7.el9_3.noarch                   1/1 
インストール済みの製品が更新されています。

インストール済み:
  podman-docker-2:4.6.1-7.el9_3.noarch                                          

完了しました!

dockerをインストールしようとしているが、podman-dockerがインストールされた。

  • podmanのバージョンを確認
$ podman -v
podman version 4.6.1
  • buildahのバージョンを確認
$ buildah -v
buildah version 1.31.3 (image-spec 1.1.0-rc.3, runtime-spec 1.1.0-rc.3)
  • skopeoのバージョンを確認
$ skopeo -v
skopeo version 1.13.3
  • runcのバージョンを確認
$ runc  -v
runc version 1.1.9
spec: 1.0.2-dev
go: go1.20.10
libseccomp: 2.5.2
  • crunのバージョンを確認
$ crun -v
crun version 1.8.7
commit: 45a1234ce12d1ee123456bdcc56789a1fa1234c4
rundir: /run/user/1000/crun
spec: 1.0.0
+SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +CRIU +YAJL
  • dockerを実行してみる、実際にpodmanが実行される。
$ sudo 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
  • ローカルストレージ内のイメージをリスト表示します。
# buildah images
REPOSITORY             TAG      IMAGE ID       CREATED        SIZE
quay.io/podman/hello   latest   e2b3db5d4fdf   5 months ago   82.3 KB
  • quay.io/podman/hello イメージをもとに、新しい作業コンテナーを作成します。
# buildah from quay.io/podman/hello
hello-working-container
  • コンテナーおよびそれらのベースイメージをリスト表示します。
# buildah containers
CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
fa8c29f1d821     *     e2b3db5d4fdf quay.io/podman/hello:latest      hello-working-container
  • イメージに基づいてコンテナーを実行します。
# podman run --name=hello quay.io/podman/hello
!... 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

DockerFileからDockerを作成する

  • 今回使うソース(Spring boot + Mavenのプロジェクト):

  • Dockerfileの中身
FROM eclipse-temurin:17-jdk-jammy

EXPOSE 8000

ADD ./target/jenkins_demo-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java","-jar","/app.jar"]
  • Dockerfileを使ってdockerイメージをビルドする(jenkins_demoのフォルダーで実行する)
[root@localhost jenkins_demo]# docker build -t jenkins_demo -f Dockerfile .
  • Dockerイメージのリストを確認
# buildah images
REPOSITORY               TAG      IMAGE ID       CREATED          SIZE
localhost/jenkins_demo   latest   d92185b1bbe5   15 minutes ago   434 MB
  • Dockerイメージを実行する
# docker run --rm -p8000:8000 jenkins_demo

WEBブラウザでURL:
http://localhost:8000/
を叩いて、コンテナー実行成功したことを確認出来ました。
Screenshot from 2024-01-28 21-20-04.png

1
0
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
1
0