Techniical-support

CentOS8にpodmanをインストールしてみた

概要

こんにちは、テクニカルサポートの牛山です。

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を動作させると上手く、外部からコンテナーに対してアクセスができませんでした。

3件のコメント

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

    1. お問い合わせいただきありがとうございます。

      ご指摘いただきました件につきまして修正いたしました。
      「コンテナーオーケストレーションツール」→「Pod およびコンテナーイメージの直接管理できるツール」

      また、podman version 3.1.0-dev環境下で、docker-composeによるデプロイを試みており
      コンテナー自体は立ち上がるものの、外部からアクセスができず、podman-composeでは
      正常にアクセスできておりましたので、docker-composeは、動作しないものとしておりました。

  2. コメントへのご対応ありがとうございます。
    特定環境下でのPodman + docker-composeの動作に不具合があるのであれば、ぜひコミュニティにフィードバックいただくのが良いかと思います。ご検討ください。

    – containers/podman: Podman: A tool for managing OCI containers and pods
    https://github.com/containers/podman

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA