openSUSE Leap 16

Podman : Pod を作成する2025/10/31

 

Kubernetes でおなじみの Pod も Podman で作成可能です。

[1] Pod を作成してコンテナーを追加します。
# 空の pod を新規作成
# -p [バインドするポート] -n [pod の名前]

dlp:~ #
podman pod create -p 8081:80 -n test-pod

5825e1c598337220d236c371dbff6056cd3724fed04c8e4798a5ed5e73810b95

# 確認

dlp:~ #
podman pod ls

POD ID        NAME        STATUS      CREATED         INFRA ID      # OF CONTAINERS
5825e1c59833  test-pod    Created     10 seconds ago  9909957aac2e  1

# pod の詳細を表示

dlp:~ #
podman pod inspect test-pod

[
     {
          "Id": "5825e1c598337220d236c371dbff6056cd3724fed04c8e4798a5ed5e73810b95",
          "Name": "test-pod",
          "Created": "2025-10-31T12:20:28.513332149+09:00",
          "CreateCommand": [
               "podman",
               "pod",
               "create",
               "-p",
               "8081:80",
               "-n",
               "test-pod"
          ],
          "ExitPolicy": "continue",
          "State": "Created",
          "Hostname": "",
          "CreateCgroup": true,
          "CgroupParent": "machine.slice",
          "CgroupPath": "machine.slice/machine-libpod_pod_5825e1c598337220d236c371dbff6056cd3724fed04c8e4798a5ed5e73810b95.slice",
          "CreateInfra": true,
          "InfraContainerID": "9909957aac2e74433eb2f533bfb9e4d01f39cbb44587e6ce9de67f1443449b55",
          "InfraConfig": {
               "PortBindings": {
                    "80/tcp": [
                         {
                              "HostIp": "0.0.0.0",
                              "HostPort": "8081"
                         }
                    ]
               },
               "HostNetwork": false,
               "StaticIP": "",
               "StaticMAC": "",
               "NoManageResolvConf": false,
               "DNSServer": null,
               "DNSSearch": null,
               "DNSOption": null,
               "NoManageHostname": false,
               "NoManageHosts": false,
               "HostAdd": null,
               "HostsFile": "",
               "Networks": [
                    "podman"
               ],
               "NetworkOptions": null,
               "pid_ns": "private",
               "userns": "host",
               "uts_ns": "private"
          },
          "SharedNamespaces": [
               "ipc",
               "net",
               "uts"
          ],
          "NumContainers": 1,
          "Containers": [
               {
                    "Id": "9909957aac2e74433eb2f533bfb9e4d01f39cbb44587e6ce9de67f1443449b55",
                    "Name": "5825e1c59833-infra",
                    "State": "created"
               }
          ],
          "LockNumber": 12
     }
]

dlp:~ #
podman images

REPOSITORY                           TAG               IMAGE ID      CREATED         SIZE
localhost/podman-pause               5.4.2-1755067447  fb2028d44a7e  52 seconds ago  722 kB
docker.io/library/root-web           latest            95306b8f2f91  41 minutes ago  439 MB
srv.world/iproute                    latest            b9d2eecf712e  59 minutes ago  386 MB
srv.world/suse-nginx                 latest            2f5e96e113e4  2 hours ago     439 MB
srv.world/suse-httpd                 latest            155ffb9ef27d  2 hours ago     393 MB
registry.opensuse.org/opensuse/leap  latest            004d9956dc10  2 weeks ago     118 MB
docker.io/moby/buildkit              buildx-stable-1   9403964920cf  3 weeks ago     228 MB
docker.io/library/mariadb            latest            dfbea441e6fc  2 months ago    336 MB

# コンテナーを起動して pod に追加する

dlp:~ #
podman run -dt --pod test-pod srv.world/suse-nginx

53923751c9b7de435bde975d41cfe0346e2e26ed9c0c7bac3fdfd70f56002dcd

dlp:~ #
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED             STATUS         PORTS                 NAMES
aee01f7c4904  docker.io/moby/buildkit:buildx-stable-1                        44 minutes ago      Up 44 minutes                        buildx_buildkit_default
9909957aac2e  localhost/podman-pause:5.4.2-1755067447                        About a minute ago  Up 10 seconds  0.0.0.0:8081->80/tcp  5825e1c59833-infra
53923751c9b7  srv.world/suse-nginx:latest              /usr/sbin/nginx -...  10 seconds ago      Up 10 seconds  0.0.0.0:8081->80/tcp  adoring_hypatia

# アクセス確認

dlp:~ #
curl localhost:8081

Podman Test on Nginx
# pod を停止する

dlp:~ #
podman pod stop test-pod

test-pod

# pod を削除する (コンテナーも含めて強制削除)

dlp:~ #
podman pod rm test-pod --force

5825e1c598337220d236c371dbff6056cd3724fed04c8e4798a5ed5e73810b95
[2] Pod の作成とコンテナーの追加を同時に実行することもできます。
dlp:~ #
podman images

REPOSITORY                           TAG               IMAGE ID      CREATED            SIZE
localhost/podman-pause               5.4.2-1755067447  fb2028d44a7e  2 minutes ago      722 kB
docker.io/library/root-web           latest            95306b8f2f91  43 minutes ago     439 MB
srv.world/iproute                    latest            b9d2eecf712e  About an hour ago  386 MB
srv.world/suse-nginx                 latest            2f5e96e113e4  2 hours ago        439 MB
srv.world/suse-httpd                 latest            155ffb9ef27d  2 hours ago        393 MB
registry.opensuse.org/opensuse/leap  latest            004d9956dc10  2 weeks ago        118 MB
docker.io/moby/buildkit              buildx-stable-1   9403964920cf  3 weeks ago        228 MB
docker.io/library/mariadb            latest            dfbea441e6fc  2 months ago       336 MB

# [test-pod2] を新規作成して [srv.world/suse-nginx] コンテナーを追加する

dlp:~ #
podman run -dt --pod new:test-pod2 -p 80:80 -p 3306:3306 srv.world/suse-nginx

3632bf597fbf6295f59b9a88d4d54e8438b829b853d42d6ba16c46573272249c

dlp:~ #
podman pod ls

POD ID        NAME        STATUS      CREATED         INFRA ID      # OF CONTAINERS
5c6172d0c3dc  test-pod2   Running     10 seconds ago  6466f9b9c815  2

dlp:~ #
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED         STATUS         PORTS                                       NAMES
aee01f7c4904  docker.io/moby/buildkit:buildx-stable-1                        45 minutes ago  Up 45 minutes                                              buildx_buildkit_default
6466f9b9c815  localhost/podman-pause:5.4.2-1755067447                        21 seconds ago  Up 21 seconds  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  5c6172d0c3dc-infra
3632bf597fbf  srv.world/suse-nginx:latest              /usr/sbin/nginx -...  21 seconds ago  Up 21 seconds  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  recursing_ptolemy

# [mariadb] コンテナーを起動して [test-pod2] に追加する

dlp:~ #
podman run -dt --pod test-pod2 -e MYSQL_ROOT_PASSWORD=Password mariadb

63a7d009e02dcadc34f10a2bdae589df4592a9544cf10fa9bbf7e83a46c23dfe

dlp:~ #
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED             STATUS             PORTS                                       NAMES
aee01f7c4904  docker.io/moby/buildkit:buildx-stable-1                        46 minutes ago      Up 46 minutes                                                  buildx_buildkit_default
6466f9b9c815  localhost/podman-pause:5.4.2-1755067447                        About a minute ago  Up About a minute  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  5c6172d0c3dc-infra
3632bf597fbf  srv.world/suse-nginx:latest              /usr/sbin/nginx -...  About a minute ago  Up About a minute  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  recursing_ptolemy
63a7d009e02d  docker.io/library/mariadb:latest         mariadbd              8 seconds ago       Up 9 seconds       0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  fervent_goldstine

dlp:~ #
curl dlp.srv.world

Dockerfile Test on Nginx
dlp:~ #
mariadb -u root -p -h dlp.srv.world -e "show variables like 'hostname';"

Enter password:
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| hostname      | test-pod2 |
+---------------+-----------+
関連コンテンツ