目次
概要
こんにちは、テクニカルサポートの牛山です。
CentOS Stream release 8にpodmanと言われるPod およびコンテナーイメージの直接管理できるツールを入れてみます。
その後、WEBサーバコンテナーを持ってきて、ブラウザから、コンテナーにアクセスできることを確認します。
podman version 3.1.0-devを使用します。
手順
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
コンテナーを実行してみる
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は新しいツールなので、ネット上に知見が少ないのでトラブルが起こると大変です。
また、docker-composeが現在のバージョンだと動作しないので、podman-composeを使用する必要があります。
ルートレス構成ですが、一般ユーザでもpodmanを動作させることは可能で、筆者の環境下でpodman-composeが正常に動作したのは一般ユーザで実行した時のみでした。
rootでpodman-composeを動作させると上手く、外部からコンテナーに対してアクセスができませんでした。
プロフィール
AWSの設計・構築をメインにおこなっています。
運用・保守をおこなう部署におりましたが、最近、アーキテクト課に異動しました。
日々精進しております。
LINK
クラウドベリージャム:プロフィールページ
Podmanはシングルノード上でのコンテナー実行を目的としたツールですので「コンテナーオーケストレーションツール」とするのは的確ではありません。
– コンテナーの構築、実行、および管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index#con_running-containers-without-docker_assembly_starting-with-containers
Podman v3.1.0であればルートモードでのdocker-composeの使用が可能です(v3.2.0以降ならルートレスでも可能)。また、podman-composeは3rdのツールなので、Podmanの標準機能で使えるdocker-composeを推奨します。
– Podman v3 で docker-composeを実行する – 赤帽エンジニアブログ
https://rheb.hatenablog.com/entry/podman3_docker_compose
お問い合わせいただきありがとうございます。
ご指摘いただきました件につきまして修正いたしました。
「コンテナーオーケストレーションツール」→「Pod およびコンテナーイメージの直接管理できるツール」
また、podman version 3.1.0-dev環境下で、docker-composeによるデプロイを試みており
コンテナー自体は立ち上がるものの、外部からアクセスができず、podman-composeでは
正常にアクセスできておりましたので、docker-composeは、動作しないものとしておりました。
コメントへのご対応ありがとうございます。
特定環境下でのPodman + docker-composeの動作に不具合があるのであれば、ぜひコミュニティにフィードバックいただくのが良いかと思います。ご検討ください。
– containers/podman: Podman: A tool for managing OCI containers and pods
https://github.com/containers/podman