Fedora 35
Sponsored Link

Podman : Create Pods2021/11/11

 
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

19182e5e788c172ca0012a6d9081dee5043dd5c3fb4d5941ecbc69d1cab23a7e

# show pods

[root@dlp ~]#
podman pod ls

POD ID        NAME        STATUS      CREATED         INFRA ID      # OF CONTAINERS
19182e5e788c  test-pod    Created     13 seconds ago  8772d822c8a0  1

# show details of pod

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

{
     "Id": "19182e5e788c172ca0012a6d9081dee5043dd5c3fb4d5941ecbc69d1cab23a7e",
     "Name": "test-pod",
     "Created": "2021-11-11T10:47:32.871314326+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_19182e5e788c172ca0012a6d9081dee5043dd5c3fb4d5941ecbc69d1cab23a7e.slice",
     "CreateInfra": true,
     "InfraContainerID": "8772d822c8a03a01d2182141b97d6a05ba3cde8dfde5039d398cf35a58354685",
     "InfraConfig": {
          "PortBindings": {
               "80/tcp": [
     {
          "HostIp": "",
          "HostPort": "8081"
     }
]
          },
          "HostNetwork": true,
          "StaticIP": "",
          "StaticMAC": "",
          "NoManageResolvConf": false,
          "DNSServer": null,
          "DNSSearch": null,
          "DNSOption": null,
          "NoManageHosts": false,
          "HostAdd": null,
          "Networks": null,
          "NetworkOptions": null,
          "pid_ns": "private",
          "userns": "host"
     },
     "SharedNamespaces": [
          "uts",
          "ipc",
          "net"
     ],
     "NumContainers": 1,
     "Containers": [
          {
               "Id": "8772d822c8a03a01d2182141b97d6a05ba3cde8dfde5039d398cf35a58354685",
               "Name": "19182e5e788c-infra",
               "State": "configured"
          }
     ]
}

[root@dlp ~]#
podman images

REPOSITORY                         TAG         IMAGE ID      CREATED            SIZE
localhost/root_web                 latest      0a40f10d61ec  46 minutes ago     391 MB
srv.world/fedora-nginx             latest      f27df6dc0cf8  About an hour ago  391 MB
srv.world/fedora-httpd             latest      3b282c5eda58  2 hours ago        418 MB
docker.io/library/mariadb          latest      e2278f24ac88  24 hours ago       416 MB
registry.fedoraproject.org/fedora  latest      1b52edb08181  7 days ago         159 MB
k8s.gcr.io/pause                   3.5         ed210e3e4a5b  7 months ago       690 kB

# run container and add it to pod

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

e6485dae58730b79f05ce23f5a2d33f3473c5b2d04855db9ea06a7fafd6dcf0d

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                          COMMAND               CREATED             STATUS            PORTS                 NAMES
8772d822c8a0  k8s.gcr.io/pause:3.5                                 About a minute ago  Up 9 seconds ago  0.0.0.0:8081->80/tcp  19182e5e788c-infra
e6485dae5873  srv.world/fedora-nginx:latest  /usr/sbin/nginx -...  8 seconds ago       Up 9 seconds ago  0.0.0.0:8081->80/tcp  wizardly_bassi

# verify accesses

[root@dlp ~]#
curl localhost:8081

Podman Test on Nginx
# stop pod

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

19182e5e788c172ca0012a6d9081dee5043dd5c3fb4d5941ecbc69d1cab23a7e

# remove pod (removed containers all)

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

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

REPOSITORY                         TAG         IMAGE ID      CREATED            SIZE
localhost/root_web                 latest      0a40f10d61ec  48 minutes ago     391 MB
srv.world/fedora-nginx             latest      f27df6dc0cf8  About an hour ago  391 MB
srv.world/fedora-httpd             latest      3b282c5eda58  2 hours ago        418 MB
docker.io/library/mariadb          latest      e2278f24ac88  24 hours ago       416 MB
registry.fedoraproject.org/fedora  latest      1b52edb08181  7 days ago         159 MB
k8s.gcr.io/pause                   3.5         ed210e3e4a5b  7 months ago       690 kB

# create a [test-pod2] pod and add [srv.world/fedora-nginx] container

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

7b09ffafa1c72edea7612f5d28f7700a580034adc2d6e6bfe01aa9e37e24ed21

[root@dlp ~]#
podman pod ls

POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
1f849e01c353  test-pod2   Running     8 seconds ago  608f03d0aab2  2

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                          COMMAND               CREATED         STATUS             PORTS                                       NAMES
608f03d0aab2  k8s.gcr.io/pause:3.5                                 20 seconds ago  Up 20 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  1f849e01c353-infra
7b09ffafa1c7  srv.world/fedora-nginx:latest  /usr/sbin/nginx -...  20 seconds ago  Up 20 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  quizzical_knuth

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

[root@dlp ~]#
podman run -dt --pod test-pod2 -e MYSQL_ROOT_PASSWORD=Password docker.io/library/mariadb

5755b15b298a0bd95afee5972565ebab7624bebd5e736e183f0ded7b6c13f697

[root@dlp ~]#
podman ps

CONTAINER ID  IMAGE                             COMMAND               CREATED             STATUS                 PORTS                                       NAMES
608f03d0aab2  k8s.gcr.io/pause:3.5                                    About a minute ago  Up About a minute ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  1f849e01c353-infra
7b09ffafa1c7  srv.world/fedora-nginx:latest     /usr/sbin/nginx -...  About a minute ago  Up About a minute ago  0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  quizzical_knuth
5755b15b298a  docker.io/library/mariadb:latest  mariadbd              8 seconds ago       Up 8 seconds ago       0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp  funny_goldstine

[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