CentOS Stream 8
Sponsored Link

Podman : Pod を作成する2021/03/22

 
Kubernetes でおなじみの Pod も Podman で作成可能です。
[1] Pod を作成してコンテナーを追加します。
# 空の pod を新規作成

# -p [バインドするポート] -n [pod の名前]

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

7a3c15d84979c805bb9491e2b36ffba6f251f272c04aacc5644ce62a55bd941b

# 確認

[root@dlp ~]#
podman pod ls

POD ID        NAME      STATUS   CREATED         INFRA ID      # OF CONTAINERS
7a3c15d84979  test-pod  Created  13 seconds ago  9926f1baf5c9  1

# pod の詳細を表示

[root@dlp ~]#
podman pod inspect test-pod

{
     "Id": "7a3c15d84979c805bb9491e2b36ffba6f251f272c04aacc5644ce62a55bd941b",
     "Name": "test-pod",
     "Created": "2021-03-18T18:36:38.993800681-06:00",
     "CreateCommand": [
          "podman",
          "pod",
          "create",
          "-p",
          "8081:80",
          "-n",
          "test-pod"
     ],
     "State": "Created",
     "Hostname": "test-pod",
     "CreateCgroup": true,
     "CgroupParent": "machine.slice",
     "CgroupPath": "machine.slice/machine-libpod_pod_7a3c15d84979c805bb9491e2b36ffba6f251f272c04aacc5644ce62a55bd941b.slice",
     "CreateInfra": true,
     "InfraContainerID": "9926f1baf5c9e46071255c256bd9c1f3156184bf8ac6d556fd18603ebf2778a4",
     "InfraConfig": {
          "PortBindings": {
               "80/tcp": [
     {
          "HostIp": "",
          "HostPort": "8081"
     }
]
          },
          "HostNetwork": false,
          "StaticIP": "",
          "StaticMAC": "",
          "NoManageResolvConf": false,
          "DNSServer": null,
          "DNSSearch": null,
          "DNSOption": null,
          "NoManageHosts": false,
          "HostAdd": null,
          "Networks": null,
          "NetworkOptions": null
     },
     "SharedNamespaces": [
          "ipc",
          "net",
          "uts"
     ],
     "NumContainers": 1,
     "Containers": [
          {
               "Id": "9926f1baf5c9e46071255c256bd9c1f3156184bf8ac6d556fd18603ebf2778a4",
               "Name": "7a3c15d84979-infra",
               "State": "configured"
          }
     ]
}

[root@dlp ~]#
podman images

REPOSITORY                  TAG     IMAGE ID      CREATED         SIZE
srv.world/centos-nginx      latest  3e52e21dc11c  28 seconds ago  298 MB
srv.world/centos-httpd      latest  10a26af7ba4d  17 hours ago    322 MB
docker.io/library/registry  2       5c4008a25e05  3 weeks ago     26.8 MB
registry.centos.org/centos  stream8 2f3766df23b6  3 months ago    217 MB
dlp.srv.world:5000/centos   latest  2f3766df23b6  3 months ago    217 MB
k8s.gcr.io/pause            3.2     80d28bedfe5d  13 months ago   688 kB

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

[root@dlp ~]#
podman run -dt --pod test-pod srv.world/centos-nginx

81537ff5425547a1d706d8742a94e508051da1d34defc400d50d51261fc1570b

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                   COMMAND               CREATED         STATUS             PORTS                 NAMES
9926f1baf5c9  k8s.gcr.io/pause:3.2                          4 minutes ago   Up 17 seconds ago  0.0.0.0:8081->80/tcp  7a3c15d84979-infra
81537ff54255  srv.world/centos-nginx  /usr/sbin/nginx -...  17 seconds ago  Up 17 seconds ago  0.0.0.0:8081->80/tcp  keen_wiles

# アクセス確認

[root@dlp ~]#
curl localhost:8081

Podman Test on Nginx
# pod を停止する

[root@dlp ~]#
podman pod stop test-pod

d688dbff0b271ad2fbefbfdc9259509d8877572f95983bb3f2f6b57b253bc074

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

[root@dlp ~]#
podman pod rm test-pod --force

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

REPOSITORY                  TAG     IMAGE ID      CREATED        SIZE
srv.world/centos-nginx      latest  3e52e21dc11c  4 minutes ago  298 MB
srv.world/centos-httpd      latest  10a26af7ba4d  17 hours ago   322 MB
docker.io/library/mariadb   latest  e27cf5bc24fe  2 weeks ago    407 MB
docker.io/library/registry  2       5c4008a25e05  3 weeks ago    26.8 MB
registry.centos.org/centos  stream8 2f3766df23b6  3 months ago   217 MB
dlp.srv.world:5000/centos   latest  2f3766df23b6  3 months ago   217 MB
k8s.gcr.io/pause            3.2     80d28bedfe5d  13 months ago  688 kB

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

[root@dlp ~]#
podman run -dt --pod new:test-pod2 -p 80:80 -p 3306:3306 srv.world/centos-nginx

7697eb77d2409e8a0848df6c2cee61da2ae35cac12c8fdead9ca861b365ca52c

[root@dlp ~]#
podman pod ls

POD ID        NAME       STATUS   CREATED        INFRA ID      # OF CONTAINERS
8ef88b1f9422  test-pod2  Running  8 seconds ago  e8050f6d7c52  2

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                   COMMAND               CREATED         STATUS             PORTS                                       NAMES
e8050f6d7c52  k8s.gcr.io/pause:3.2                          24 seconds ago  Up 24 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  8ef88b1f9422-infra
7697eb77d240  srv.world/centos-nginx  /usr/sbin/nginx -...  24 seconds ago  Up 24 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  zen_mclaren

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

[root@dlp ~]#
podman run -dt --pod test-pod2 -e MYSQL_ROOT_PASSWORD=Password mariadb

89a4f4b21cb9c79290e0f1aedfd9855ea16ed95c76c5dca73b5f159c41f84519

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                             COMMAND               CREATED        STATUS            PORTS                                       NAMES
e8050f6d7c52  k8s.gcr.io/pause:3.2                                    3 minutes ago  Up 3 minutes ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  8ef88b1f9422-infra
7697eb77d240  srv.world/centos-nginx            /usr/sbin/nginx -...  3 minutes ago  Up 3 minutes ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  zen_mclaren
89a4f4b21cb9  docker.io/library/mariadb:latest  mysqld                8 seconds ago  Up 9 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  tender_ramanujan

[root@dlp ~]#
curl dlp.srv.world

Dockerfile Test on Nginx
[root@dlp ~]#
mysql -u root -p -h dlp.srv.world -e "show variables like 'hostname';"

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