$ podman search nginx
NAME DESCRIPTION
registry.suse.com/caasp/v4/nginx-ingress-controller registry.suse.com/caasp/v4.5/ingress-nginx-controller registry.suse.com/caasp/v5/ingress-nginx-controller registry.suse.com/cap/nginx-buildpack registry.suse.com/cap/stratos-metrics-nginx registry.suse.com/cap/suse-nginx-buildpack registry.suse.com/rancher/library-nginx registry.suse.com/suse/nginx
$ podman search nginx
NAME DESCRIPTION
registry.suse.com/caasp/v4/nginx-ingress-controller registry.suse.com/caasp/v4.5/ingress-nginx-controller registry.suse.com/caasp/v5/ingress-nginx-controller registry.suse.com/cap/nginx-buildpack registry.suse.com/cap/stratos-metrics-nginx registry.suse.com/cap/suse-nginx-buildpack registry.suse.com/rancher/library-nginx registry.suse.com/suse/nginx
$ podman search nginx
NAME DESCRIPTION
registry.suse.com/caasp/v4/nginx-ingress-controller registry.suse.com/caasp/v4.5/ingress-nginx-controller registry.suse.com/caasp/v5/ingress-nginx-controller registry.suse.com/cap/nginx-buildpack registry.suse.com/cap/stratos-metrics-nginx registry.suse.com/cap/suse-nginx-buildpack registry.suse.com/rancher/library-nginx registry.suse.com/suse/nginx
$ podman search -weight: 500;">docker.io/library/nginx
NAME DESCRIPTION
-weight: 500;">docker.io/library/nginx Official build of Nginx.
-weight: 500;">docker.io/nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers...
-weight: 500;">docker.io/nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX...
-weight: 500;">docker.io/nginx/unit This repository is retired, use the Docker...
-weight: 500;">docker.io/nginx/nginx-ingress-operator NGINX Ingress Operator for NGINX and NGINX...
-weight: 500;">docker.io/bitnami/nginx Bitnami Secure Image for nginx
$ podman search -weight: 500;">docker.io/library/nginx
NAME DESCRIPTION
-weight: 500;">docker.io/library/nginx Official build of Nginx.
-weight: 500;">docker.io/nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers...
-weight: 500;">docker.io/nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX...
-weight: 500;">docker.io/nginx/unit This repository is retired, use the Docker...
-weight: 500;">docker.io/nginx/nginx-ingress-operator NGINX Ingress Operator for NGINX and NGINX...
-weight: 500;">docker.io/bitnami/nginx Bitnami Secure Image for nginx
$ podman search -weight: 500;">docker.io/library/nginx
NAME DESCRIPTION
-weight: 500;">docker.io/library/nginx Official build of Nginx.
-weight: 500;">docker.io/nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers...
-weight: 500;">docker.io/nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX...
-weight: 500;">docker.io/nginx/unit This repository is retired, use the Docker...
-weight: 500;">docker.io/nginx/nginx-ingress-operator NGINX Ingress Operator for NGINX and NGINX...
-weight: 500;">docker.io/bitnami/nginx Bitnami Secure Image for nginx
$ podman run -d --rm --name dtnginx suse/nginx
$ podman run -d --rm --name dtnginx suse/nginx
$ podman run -d --rm --name dtnginx suse/nginx
Resolving "suse/nginx" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull registry.suse.com/suse/nginx:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob 5a22de652f81 done |
Copying blob 36e296237f0c done |
Copying config 885ea61474 done |
Writing manifest to image destination
Storing signatures
Resolving "suse/nginx" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull registry.suse.com/suse/nginx:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob 5a22de652f81 done |
Copying blob 36e296237f0c done |
Copying config 885ea61474 done |
Writing manifest to image destination
Storing signatures
Resolving "suse/nginx" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull registry.suse.com/suse/nginx:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob 5a22de652f81 done |
Copying blob 36e296237f0c done |
Copying config 885ea61474 done |
Writing manifest to image destination
Storing signatures
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 10 seconds ago Up 10 seconds 80/tcp dtnginx
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 10 seconds ago Up 10 seconds 80/tcp dtnginx
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 10 seconds ago Up 10 seconds 80/tcp dtnginx
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 2 minutes ago Up 2 minutes 80/tcp dtnginx
2ea01225897d quay.io/podman/hello:latest /usr/local/bin/po... 3 minutes ago Exited (0) 3 minutes ago hopeful_heyrovsky
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 2 minutes ago Up 2 minutes 80/tcp dtnginx
2ea01225897d quay.io/podman/hello:latest /usr/local/bin/po... 3 minutes ago Exited (0) 3 minutes ago hopeful_heyrovsky
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
431e72ff8902 registry.suse.com/suse/nginx:latest nginx -g daemon o... 2 minutes ago Up 2 minutes 80/tcp dtnginx
2ea01225897d quay.io/podman/hello:latest /usr/local/bin/po... 3 minutes ago Exited (0) 3 minutes ago hopeful_heyrovsky
$ podman rename hopeful_heyrovsky dthello
$ podman rename hopeful_heyrovsky dthello
$ podman rm dthello
dthello
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman rm dthello
dthello
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman rm dthello
dthello
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman exec -it dtnginx /bin/bash
$ podman exec -it dtnginx /bin/bash
$ podman exec -it dtnginx /bin/bash
bash-5.2# -weight: 500;">curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the container with the nginx web server is successfully installed and working.</p>
</body>
</html>
bash-5.2# -weight: 500;">curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the container with the nginx web server is successfully installed and working.</p>
</body>
</html>
bash-5.2# -weight: 500;">curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the container with the nginx web server is successfully installed and working.</p>
</body>
</html>
bash-5.2# exit
bash-5.2# exit
bash-5.2# exit
$ podman -weight: 500;">stop dtnginx
$ podman -weight: 500;">stop dtnginx
$ podman -weight: 500;">stop dtnginx
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman rm dtnginx
$ podman rm dtnginx
$ podman rm dtnginx
$ podman container prune
$ podman container prune
$ podman container prune
$ podman run -d --rm --name dtmariadb \ -e MARIADB_ROOT_PASSWORD=podman \ -e MARIADB_DATABASE=testdb \ suse/mariadb
$ podman run -d --rm --name dtmariadb \ -e MARIADB_ROOT_PASSWORD=podman \ -e MARIADB_DATABASE=testdb \ suse/mariadb
$ podman run -d --rm --name dtmariadb \ -e MARIADB_ROOT_PASSWORD=podman \ -e MARIADB_DATABASE=testdb \ suse/mariadb
$ podman exec dtmariadb env | grep MARIADB
MARIADB_ROOT_PASSWORD=podman
MARIADB_DATABASE=testdb
$ podman exec dtmariadb env | grep MARIADB
MARIADB_ROOT_PASSWORD=podman
MARIADB_DATABASE=testdb
$ podman exec dtmariadb env | grep MARIADB
MARIADB_ROOT_PASSWORD=podman
MARIADB_DATABASE=testdb
$ podman exec -it dtmariadb mariadb -u root -ppodman -e "SHOW DATABASES;"
Database
information_schema
mysql
performance_schema
testdb
$ podman exec -it dtmariadb mariadb -u root -ppodman -e "SHOW DATABASES;"
Database
information_schema
mysql
performance_schema
testdb
$ podman exec -it dtmariadb mariadb -u root -ppodman -e "SHOW DATABASES;"
Database
information_schema
mysql
performance_schema
testdb
$ podman -weight: 500;">stop dtmariadb
$ podman -weight: 500;">stop dtmariadb
$ podman -weight: 500;">stop dtmariadb
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
127.0.0.1:6379> SET mykey "Hello from Podman!"
OK
127.0.0.1:6379> GET mykey
"Hello from Podman!"
127.0.0.1:6379> exit
127.0.0.1:6379> SET mykey "Hello from Podman!"
OK
127.0.0.1:6379> GET mykey
"Hello from Podman!"
127.0.0.1:6379> exit
127.0.0.1:6379> SET mykey "Hello from Podman!"
OK
127.0.0.1:6379> GET mykey
"Hello from Podman!"
127.0.0.1:6379> exit
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman exec -it dtpg psql -U postgres -d testdb
$ podman exec -it dtpg psql -U postgres -d testdb
$ podman exec -it dtpg psql -U postgres -d testdb
testdb=# CREATE TABLE users (name VARCHAR(50), email VARCHAR(50));
CREATE TABLE
testdb=# INSERT INTO users VALUES ('Alice', '[email protected]');
INSERT 0 1
testdb=# SELECT * FROM users; name | email -------+-------------------- Alice | [email protected]
(1 row)
testdb=# \q
testdb=# CREATE TABLE users (name VARCHAR(50), email VARCHAR(50));
CREATE TABLE
testdb=# INSERT INTO users VALUES ('Alice', '[email protected]');
INSERT 0 1
testdb=# SELECT * FROM users; name | email -------+-------------------- Alice | [email protected]
(1 row)
testdb=# \q
testdb=# CREATE TABLE users (name VARCHAR(50), email VARCHAR(50));
CREATE TABLE
testdb=# INSERT INTO users VALUES ('Alice', '[email protected]');
INSERT 0 1
testdb=# SELECT * FROM users; name | email -------+-------------------- Alice | [email protected]
(1 row)
testdb=# \q
$ podman -weight: 500;">stop dtredis dtpg
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman -weight: 500;">stop dtredis dtpg
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman -weight: 500;">stop dtredis dtpg
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
$ podman run -d --rm --name dtredis -weight: 500;">docker.io/library/redis
$ podman exec -it dtredis redis-cli
127.0.0.1:6379> GET mykey
(nil)
127.0.0.1:6379> GET mykey
(nil)
127.0.0.1:6379> GET mykey
(nil)
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman exec -it dtpg psql -U postgres -d testdb -c "SELECT * FROM users;"
ERROR: relation "users" does not exist
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman exec -it dtpg psql -U postgres -d testdb -c "SELECT * FROM users;"
ERROR: relation "users" does not exist
$ podman run -d --rm --name dtpg \ -e POSTGRES_PASSWORD=podman \ -e POSTGRES_DB=testdb \ suse/postgres
$ podman exec -it dtpg psql -U postgres -d testdb -c "SELECT * FROM users;"
ERROR: relation "users" does not exist - Finding and pulling images from container registries
- Running your first container with the right flags
- Managing container lifecycles (-weight: 500;">start, -weight: 500;">stop, -weight: 500;">restart, -weight: 500;">remove)
- The key differences between podman run and -weight: 500;">docker run - Podman installed, rootless on SLES 16 (see Ep 1)
- Shared storage configured (multi-user UID/GID setup)
- 5 minutes to run your first workload - LinkedIn: Share with your network
- Twitter: Tweet about it
- Questions? Drop a comment below or reach out on LinkedIn