FreeBSD 15

Podman : Pod を作成する2026/01/09

 

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

[1] Pod を作成してコンテナーを追加します。
root@dlp:~ #
vi /usr/local/etc/containers/containers.conf
# 411行目 : 追記

infra_image = "k8s.gcr.io/pause:3.10.1"
# pause イメージを pull

root@dlp:~ #
podman pull --os=linux k8s.gcr.io/pause:3.10.1
# 空の pod を新規作成
# -p [バインドするポート] -n [pod の名前]

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

WARN[0000] image platform (linux/amd64) does not match the expected platform (freebsd/amd64)
c51cd8f528ae471a4bff77e2bb032dd9281ccce04f009d4edf9b0d7809b8b093

# 確認

root@dlp:~ #
podman pod ls

POD ID        NAME        STATUS      CREATED         INFRA ID      # OF CONTAINERS
c51cd8f528ae  test-pod    Created     18 seconds ago  314e9ddf5805  1

# pod の詳細を表示

root@dlp:~ #
podman pod inspect test-pod

[
     {
          "Id": "c51cd8f528ae471a4bff77e2bb032dd9281ccce04f009d4edf9b0d7809b8b093",
          "Name": "test-pod",
          "Created": "2026-01-09T10:20:59.364267996+09:00",
          "CreateCommand": [
               "podman",
               "pod",
               "create",
               "-p",
               "8081:80",
               "-n",
               "test-pod"
          ],
          "ExitPolicy": "continue",
          "State": "Created",
          "Hostname": "",
          "CreateCgroup": true,
          "CreateInfra": true,
          "InfraContainerID": "314e9ddf58054869739799fb2b253d3877eddce6b23d6a62053f8afa4c903c62",
          "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": [
               "uts",
               "ipc",
               "net"
          ],
          "NumContainers": 1,
          "Containers": [
               {
                    "Id": "314e9ddf58054869739799fb2b253d3877eddce6b23d6a62053f8afa4c903c62",
                    "Name": "c51cd8f528ae-infra",
                    "State": "created"
               }
          ],
          "security_opt": [
               "unmask=all"
          ],
          "LockNumber": 13
     }
]

root@dlp:~ #
podman images

REPOSITORY                TAG         IMAGE ID      CREATED            SIZE
localhost/freebsd-nginx   latest      3cd54285ea87  58 minutes ago     1.02 GB
localhost/freebsd-httpd   latest      dbf5f8b9e7e2  About an hour ago  1.19 GB
localhost/freebsd-base    latest      afb96df72092  2 hours ago        902 MB
quay.io/centos/centos     stream10    e9ac565bc256  2 days ago         316 MB
docker.io/library/ubuntu  latest      c3a134f2ace4  2 months ago       80.6 MB
k8s.gcr.io/pause          3.10.1      cd073f4c5f6a  6 months ago       742 kB

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

root@dlp:~ #
podman run -dt --pod test-pod localhost/freebsd-nginx

457dfb1bf17a4b58a081dcc6a2cb8d0dcd0b63b58faa9299827736e805c55a73

root@dlp:~ #
podman ps

CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS         PORTS                 NAMES
314e9ddf5805  k8s.gcr.io/pause:3.10.1                               2 minutes ago   Up 11 seconds  0.0.0.0:8081->80/tcp  c51cd8f528ae-infra
457dfb1bf17a  localhost/freebsd-nginx:latest  /usr/local/sbin/n...  11 seconds ago  Up 11 seconds  0.0.0.0:8081->80/tcp  suspicious_swartz

# アクセス確認

root@dlp:~ #
ssh freebsd@node01.srv.world "curl -s http://`hostname`:8081"

(freebsd@node01.srv.world) Password for freebsd@node01.srv.world:
Dockerfile Test on Nginx
# pod を停止する

root@dlp:~ #
podman pod stop test-pod

test-pod

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

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

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

REPOSITORY                TAG         IMAGE ID      CREATED            SIZE
localhost/freebsd-nginx   latest      3cd54285ea87  About an hour ago  1.02 GB
localhost/freebsd-httpd   latest      dbf5f8b9e7e2  About an hour ago  1.19 GB
localhost/freebsd-base    latest      afb96df72092  2 hours ago        902 MB
quay.io/centos/centos     stream10    e9ac565bc256  3 days ago         316 MB
docker.io/library/ubuntu  latest      c3a134f2ace4  2 months ago       80.6 MB
k8s.gcr.io/pause          3.10.1      cd073f4c5f6a  6 months ago       742 kB

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

root@dlp:~ #
podman run -dt --pod new:test-pod2 -p 80:80 localhost/freebsd-nginx

WARN[0000] image platform (linux/amd64) does not match the expected platform (freebsd/amd64)
130eca2a4c4a11d5187f0d93be6da6c016732226ceadac6409ab6cfd5c2d66c3

root@dlp:~ #
podman pod ls

POD ID        NAME        STATUS      CREATED         INFRA ID      # OF CONTAINERS
ec5d072e5d1b  test-pod2   Running     14 seconds ago  b8db87fcc93f  2

root@dlp:~ #
podman ps

CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS         PORTS               NAMES
b8db87fcc93f  k8s.gcr.io/pause:3.10.1                               28 seconds ago  Up 28 seconds  0.0.0.0:80->80/tcp  ec5d072e5d1b-infra
130eca2a4c4a  localhost/freebsd-nginx:latest  /usr/local/sbin/n...  28 seconds ago  Up 28 seconds  0.0.0.0:80->80/tcp  vibrant_shtern

root@dlp:~ #
ssh freebsd@node01.srv.world "curl -s http://`hostname`"

(freebsd@node01.srv.world) Password for freebsd@node01.srv.world:
Dockerfile Test on Nginx
関連コンテンツ