CentOS8にpodmanをインストールしてみた
Contents
概要
CentOS Stream release 8にpodmanと言われるコンテナーオーケストレーションツールを入れてみます。
その後、WEBサーバコンテナーを持ってきて、ブラウザから、コンテナーにアクセスできることを確認します。
podman version 3.1.0-devを使用します。(※執筆時:2021年06月10日(木)時点)
手順
podmanのインストール
コンテナーモジュールのインストール
[root@dev ~]# dnf module install container-tools
podmanバージョン確認
[root@dev ~]# podman --version
podman version 3.1.0-dev
Dockerコマンドを使用できるようにする
[root@dev ~]# dnf install podman-docker
→podmanコマンドラインをdockerコマンドに置き換えて実行できるようになります。
複数コンテナー間通信をできるようにする
[root@dev ~]# dnf install podman-plugins
podman-plugins
dnsmasq
ローカルDNSレコードをコンテナーに割り当ててコンテナーの間で通信できます。
podman.socketサービス起動&自動起動有効化
[root@dev ~]# systemctl --now enable podman.socket
podman.socketへのアクセスをその他ユーザでもアクセス可能にする
[root@dev ~]# ls -la /var/run/docker.sock
lrwxrwxrwx 1 root root 23 6月 9 23:14 /var/run/docker.sock -> /run/podman/podman.sock
[root@dev ~]# ls -la /run/podman/podman.sock
srw-rw---- 1 root root 0 6月 9 23:15 /run/podman/podman.sock
[root@dev ~]# chmod 757 /run/podman
[root@dev ~]# chmod 667 /run/podman/podman.sock
[root@dev ~]# systemctl daemon-reload
[root@dev ~]# systemctl restart podman.socket
再起動後、権限が元に戻らないようにする
[root@dev script]# vim podman.socket.permit.sh
#!/usr/bin/env bash
run_podman_permit="$(/usr/bin/stat /run/podman | /usr/bin/grep "Access:" | grep "0757")"
run_podman_podman_socket="$(/usr/bin/stat /run/podman/podman.sock | /usr/bin/grep "Access:" | grep "0667")"
if [ -z "$run_podman_permit" ]; then
chmod 757 /run/podman
fi
if [ -z "$run_podman_podman_socket" ]; then
chmod 667 /run/podman/podman.sock
fi
[root@dev ~]# chmod 700 /root/script/podman.socket.permit.sh
[root@dev ~]# diff -u /root/BACKUP_20210610/root <(crontab -l)
・・・
+*/1 * * * * /root/script/podman.socket.permit.sh > /root/script/podman.socket.permit.log 2>&1
コンテナーを実行してみる
WEBサーバコンテナーを実行する
[root@dev ~]# docker run --rm -p 8080:80 -it php:apache bash
root@b784d756b0b2:/var/www/html# apt-get update
・・・
Fetched 8448 kB in 2s (4250 kB/s)
Reading package lists... Done
→aptを最新にする。
root@b784d756b0b2:/var/www/html# apt install vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
・・・
→エディタをインストール。
root@b784d756b0b2:/var/www/html# vim index.html
Hello World Podman
root@b784d756b0b2:/var/www/html# /etc/init.d/apache2 start
[....] Starting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.88.0.8. Set the 'ServerName' directive globally to suppress this message
. ok
→WEBサーバサービス開始。
WEBサーバコンテナーにWEBブラウザからアクセスしてみる
http://***.***.***.***:8080/
→GIPまたはLIPの8080番ポートにアクセスし、「Hello World Podman」が表示されることを確認します。
以下、キャプチャ画像のようになっていれば問題ありません。
まとめ
dockerと比較し、podmanはvs codeとの連携ができなかったので、利便性を考えると微妙な感じでした。
今後、もっと親和性が向上していくことを願うばかりです。
ディスカッション
コメント一覧
まだ、コメントがありません