CentOS Stream 9
Sponsored Link

Podman : Create Pods2022/03/14

 
Create Pods like Kubernetes.
[1] Create a Pod and add a Container to it.
# create a empty pod
# -p [bind port] -n [pod name]

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

bdf487d4c6918e0a17bedd71f0fe19df38497db670bf2098155b890e2f82b593

# show pods

[root@dlp ~]#
podman pod ls

POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
bdf487d4c691  test-pod    Created     7 seconds ago  17def5b06bd3  1

# show details of pod

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

{
     "Id": "bdf487d4c6918e0a17bedd71f0fe19df38497db670bf2098155b890e2f82b593",
     "Name": "test-pod",
     "Created": "2022-03-14T12:43:45.353771267+09:00",
     "CreateCommand": [
          "podman",
          "pod",
          "create",
          "-p",
          "8081:80",
          "-n",
          "test-pod"
     ],
     "State": "Created",
     "Hostname": "",
     "CreateCgroup": true,
     "CgroupParent": "machine.slice",
     "CgroupPath": "machine.slice/machine-libpod_pod_bdf487d4c6918e0a17bedd71f0fe19df38497db670bf2098155b890e2f82b593.slice",
     "CreateInfra": true,
     "InfraContainerID": "17def5b06bd350ad389008ef695094c29a1247a583297b21d1486c5766f3afe6",
     "InfraConfig": {
          "PortBindings": {
               "80/tcp": [
     {
          "HostIp": "",
          "HostPort": "8081"
     }
]
          },
          "HostNetwork": true,
          "StaticIP": "",
          "StaticMAC": "",
          "NoManageResolvConf": false,
          "DNSServer": null,
          "DNSSearch": null,
          "DNSOption": null,
          "NoManageHosts": false,
          "HostAdd": null,
          "Networks": [
               "podman"
          ],
          "NetworkOptions": null,
          "pid_ns": "private",
          "userns": "host"
     },
     "SharedNamespaces": [
          "ipc",
          "net",
          "uts"
     ],
     "NumContainers": 1,
     "Containers": [
          {
               "Id": "17def5b06bd350ad389008ef695094c29a1247a583297b21d1486c5766f3afe6",
               "Name": "bdf487d4c691-infra",
               "State": "created"
          }
     ]
}

[root@dlp ~]#
podman images

REPOSITORY                  TAG               IMAGE ID      CREATED         SIZE
localhost/podman-pause      4.0.0-1645764745  b03d3f09b431  38 seconds ago  812 kB
docker.io/library/root_web  latest            b82379313273  52 minutes ago  247 MB
localhost/root_web          latest            6190fc2fcb25  52 minutes ago  247 MB
srv.world/centos-nginx      latest            762eb0a249a5  2 hours ago     247 MB
srv.world/centos-httpd      latest            0c6c507d6e95  2 hours ago     253 MB
docker.io/library/mariadb   latest            f5dd1ac0b00e  3 days ago      421 MB
quay.io/centos/centos       stream9           44ffcc4acee8  3 days ago      152 MB
docker.io/library/registry  2                 8948869ebfee  5 days ago      24.7 MB

# run container and add it to pod

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

5410cefbdbd61a15e074df0c0dc9adf9aa2ab0785754a079f0a82c8e6ad24df1

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED             STATUS            PORTS                 NAMES
17def5b06bd3  localhost/podman-pause:4.0.0-1645764745                        About a minute ago  Up 7 seconds ago  0.0.0.0:8081->80/tcp  bdf487d4c691-infra
5410cefbdbd6  srv.world/centos-nginx:latest            /usr/sbin/nginx -...  7 seconds ago       Up 7 seconds ago  0.0.0.0:8081->80/tcp  gracious_ellis

# verify accesses

[root@dlp ~]#
curl localhost:8081

Podman Test on Nginx
# stop pod

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

bdf487d4c6918e0a17bedd71f0fe19df38497db670bf2098155b890e2f82b593

# remove pod (removed containers all)

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

bdf487d4c6918e0a17bedd71f0fe19df38497db670bf2098155b890e2f82b593
[2] It's possible to create Pod and add Container with one command.
[root@dlp ~]#
podman images

REPOSITORY                  TAG               IMAGE ID      CREATED             SIZE
localhost/podman-pause      4.0.0-1645764745  b03d3f09b431  About a minute ago  812 kB
docker.io/library/root_web  latest            b82379313273  53 minutes ago      247 MB
localhost/root_web          latest            6190fc2fcb25  53 minutes ago      247 MB
srv.world/centos-nginx      latest            762eb0a249a5  2 hours ago         247 MB
srv.world/centos-httpd      latest            0c6c507d6e95  2 hours ago         253 MB
docker.io/library/mariadb   latest            f5dd1ac0b00e  3 days ago          421 MB
quay.io/centos/centos       stream9           44ffcc4acee8  3 days ago          152 MB
docker.io/library/registry  2                 8948869ebfee  5 days ago          24.7 MB

# create a [test_pod2] pod and add [srv.world/centos-nginx] container

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

02cbf5bbd55accd5e9d72277037586fceb99c2730ceb5074fc59721507d37170

[root@dlp ~]#
podman pod ls

POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
0f4f7e83351d  test-pod2   Running     7 seconds ago  1feba853e2d1  2

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED         STATUS             PORTS                                       NAMES
1feba853e2d1  localhost/podman-pause:4.0.0-1645764745                        19 seconds ago  Up 20 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  0f4f7e83351d-infra
02cbf5bbd55a  srv.world/centos-nginx:latest            /usr/sbin/nginx -...  19 seconds ago  Up 20 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  kind_kepler

# run [mariadb] container and add it to the [test-pod2]

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

70e1c460e9bd7243f8372ec0812263264e9dc54cac1cdeb9fa23ecc25440c527

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED         STATUS             PORTS                                       NAMES
1feba853e2d1  localhost/podman-pause:4.0.0-1645764745                        50 seconds ago  Up 51 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  0f4f7e83351d-infra
02cbf5bbd55a  srv.world/centos-nginx:latest            /usr/sbin/nginx -...  50 seconds ago  Up 51 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  kind_kepler
70e1c460e9bd  docker.io/library/mariadb:latest         mariadbd              6 seconds ago   Up 7 seconds ago   0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  hungry_mestorf

[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 |
+---------------+-----------+
Matched Content