コンテンツへスキップ

RockyLinux9 + Docker CE インストール

もう出たのね…

RHEL9に続いて、RockyLinux9 が公開されました。ちょっと様子見しようかなぁと思っていたのですが、要検証しる!!という依頼を受けたのと…

Support

  • Rocky Linux 9 will be supported until May 31st, 2032.
  • Rocky Linux 8 continues to be supported until May 31st, 2029.

2032年5月31日までのサポートがあるんなら、あと10年近くのサポートを受けられるという意味でも採用するメリットはありますよね。

という訳でいつも通り、半自動セットアップスクリプトを作成しつつ検証を行いました。
で、そのついでに docker も導入して使いたいよねー、という要望があったので、これまた同時に検証する事にしました。

まず何はともあれインストール

最初にOS自体(に含まれるデーモン等)を最新版へのアップデートします。
(※ めんどいので root で作業しています)

$cat /etc/redhat-release
Rocky Linux release 9.0 (Blue Onyx)

# dnf -y update
# dnf -y upgrade

次に Docker のレポジトリを追加して、必要なコンポーネントをインストールします。
(必要に応じて他のアプリを追加で導入してください)

# dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

# dnf -y install docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64                                                                                                                                           22 kB/s | 7.1 kB     00:00
Dependencies resolved.
===================================================================================================================================================================================================
 Package                                                 Architecture                         Version                                         Repository                                      Size
===================================================================================================================================================================================================
Installing:
 containerd.io                                           x86_64                               1.6.6-3.1.el9                                   docker-ce-stable                                32 M
 docker-ce                                               x86_64                               3:20.10.17-3.el9                                docker-ce-stable                                21 M
 docker-ce-cli                                           x86_64                               1:20.10.17-3.el9                                docker-ce-stable                                29 M
Installing dependencies:
 container-selinux                                       noarch                               3:2.179.1-1.el9_0                               appstream                                       45 k
 docker-ce-rootless-extras                               x86_64                               20.10.17-3.el9                                  docker-ce-stable                               3.8 M
 fuse-overlayfs                                          x86_64                               1.8.2-1.el9                                     appstream                                       71 k
 fuse3                                                   x86_64                               3.10.2-5.el9                                    appstream                                       53 k
 fuse3-libs                                              x86_64                               3.10.2-5.el9                                    appstream                                       91 k
 libslirp                                                x86_64                               4.4.0-7.el9                                     appstream                                       68 k
 slirp4netns                                             x86_64                               1.1.12-4.el9                                    appstream                                       44 k
Installing weak dependencies:
 docker-scan-plugin                                      x86_64                               0.17.0-3.el9                                    docker-ce-stable                               3.6 M

Transaction Summary
===================================================================================================================================================================================================
Install  11 Packages

Total download size: 91 M
Installed size: 389 M
(略)
Installed:
  container-selinux-3:2.179.1-1.el9_0.noarch              containerd.io-1.6.6-3.1.el9.x86_64             docker-ce-3:20.10.17-3.el9.x86_64         docker-ce-cli-1:20.10.17-3.el9.x86_64
  docker-ce-rootless-extras-20.10.17-3.el9.x86_64         docker-scan-plugin-0.17.0-3.el9.x86_64         fuse-overlayfs-1.8.2-1.el9.x86_64         fuse3-3.10.2-5.el9.x86_64
  fuse3-libs-3.10.2-5.el9.x86_64                          libslirp-4.4.0-7.el9.x86_64                    slirp4netns-1.1.12-4.el9.x86_64

Complete!

動作試験

他のデーモン同様に起動して、ステータスを確認します。エラーが無い事を確認できたら、enable にして自動起動させるようにします。念の為、最新版かどうかを確認する為にバージョンチェックします。

# systemctl start docker

# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
     Active: active (running) since Fri 2022-07-22 02:05:58 JST; 13s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 2255 (dockerd)
      Tasks: 10
     Memory: 33.3M
        CPU: 699ms
     CGroup: /system.slice/docker.service
             └─2255 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
(略)

# systemctl enable docker
# /bin/docker --version
Docker version 20.10.17, build 100c701

Docker version 20.10.17 なので問題無いですね。
最後に定番の Hello World コンテナを起動してみます。

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:53f1bbee2f52c39e41682ee1d388285290c5c8a76cc92b42687eecf38e0af3f0
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/

はい、動作完了です。最後に、psコマンドで確認したら、イメージを削除しておきましょう。

# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
d5cb82ce3e75   hello-world   "/hello"   42 seconds ago   Exited (0) 40 seconds ago             nice_leakey

# docker rm d5cb82ce3e75
d5cb82ce3e75

# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

ついでに docker-compose もインストール

色々なサイトを参考にしたら、いちいち https://github.com/docker/compose のページのバージョンチェックしろとか書いてあってめんどくさかったので、自動で取得してバージョン抽出するコマンド作りました。(というかエンジニアなんだから、そのくらいやろうよ)

オマケにだいたい ver1 の時の情報で、今とURLの記載方式が違うのでバージョンだけ変えてもダウンロード失敗するし。

# wget -O - https://github.com/docker/compose | grep docker/compose/releases/tag/ | awk {'print $7'} | tr "/" "\n" | grep "v" | sed 's/">//' > ./tmp.log

2022-07-22 03:10:06 (11.4 MB/s) - written to stdout [229842]

# curl -L "https://github.com/docker/compose/releases/download/$(cat ./tmp.log)/docker-compose-$(uname -s | tr [A-Z] [a-z])-$(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 24.5M  100 24.5M    0     0  8348k      0  0:00:03  0:00:03 --:--:-- 11.1M

# chmod +x /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# rm -rf ./tmp.log

# /usr/bin/docker-compose --version
Docker Compose version v2.7.0

以上で完了です。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください