Unlike Docker’s single-container concept, Podman brings the ability to run multiple containers in a pod. In this lab, we will examine how to manage multiple containers as part of a pod. Upon completion of this lab, you will be able to use Podman to manage pods.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Run a Rootless Pod
Perform the following tasks as a non-root user:
- Check for existing rootless containers and pods.
- Create a pod named
wp-pod
, with port80
in the pod published to8080
on the host. - Check again for pods and containers, and confirm that you see an Infra container.
- Start the
mariadb
container:- Name the container
wp-db
- Add the container to the
wp-pod
pod - Set
--restart=always
- Use the
mariadb
short name for the container image - Set the following environment variables:
- MYSQL_ROOT_PASSWORD="dbpass"
- MYSQL_DATABASE="wp"
- MYSQL_USER="wordpress"
- MYSQL_PASSWORD="wppass"
- Name the container
- Check for containers again, and confirm that you see the
mariadb
container. - Start the WordPress container:
- Name the container
wp-web
- Add the container to the
wp-pod
pod - Set
--restart=always
- Use the
wordpress
short name for the container image - Set the following environment variables:
- WORDPRESS_DB_NAME="wp"
- WORDPRESS_DB_USER="wordpress"
- WORDPRESS_DB_PASSWORD="wppass"
- WORDPRESS_DB_HOST="127.0.0.1"
- Name the container
- Check for containers again, and confirm that you see the WordPress container.
- Check connectivity with a
curl
command onlocalhost:8080
. Since nothing is returned, immediately check the exit code and confirm it is0
. - In a web browser, connect to the lab server’s public IP address or DNS name on port 8080 and confirm that the WordPress page is functional.
- Run a Rootfull Pod
Perform the following tasks as the root user:
- Become the
root
user. - Check for existing rootfull containers and pods.
- Create a pod named
root-wp-pod
, with port80
in the pod published to8081
on the host. - Check again for pods and containers, and confirm that you see an Infra container.
- Start the
mariadb
container:- Name the container
root-wp-db
- Add the container to the
root-wp-pod
pod - Set
--restart=always
- Use the
mariadb
short name for the container image - Set the following environment variables:
- MYSQL_ROOT_PASSWORD="dbpass"
- MYSQL_DATABASE="wp"
- MYSQL_USER="wordpress"
- MYSQL_PASSWORD="wppass"
- Name the container
- Check for containers again, and confirm that you see the
mariadb
container. - Start the WordPress container:
- Name the container
root-wp-web
- Add the container to the
root-wp-pod
pod - Set
--restart=always
- Use the
wordpress
short name for the container image - Set the following environment variables:
- WORDPRESS_DB_NAME="wp"
- WORDPRESS_DB_USER="wordpress"
- WORDPRESS_DB_PASSWORD="wppass"
- WORDPRESS_DB_HOST="127.0.0.1"
- Name the container
- Check for containers again, and confirm that you see the WordPress container.
- Check connectivity with a
curl
command onlocalhost:8081
. Since nothing is returned, immediately check the exit code and confirm it is0
. - In a web browser, connect to the lab server’s public IP address or DNS name on port 8081 and confirm that the WordPress page is functional.
- Become the
- Manage a Rootless Pod
Perform the following tasks as a non-root user:
- Check for any containers and pods that are running, which should include the
wp-pod
pod and its containers. - Stop the
wp-pod
pod, along with its containers. - Check the pods and containers again, and confirm that they have been stopped.
- Start the
wp-pod
pod, along with all its containers. - Check the pods and containers again, and confirm that they have been started.
- Restart the
wp-pod
pod, along with all its containers. - Check the pods and containers again, and confirm that they have been restarted.
- Get information about the
wp-pod
pod. - List the
wp-pod
pod’s processes. - Kill and remove the
wp-pod
pod and its containers. - Check the pods and containers again, and confirm that they have been removed.
- Clean up any reclaimable space using
podman system
commands, and confirm it has been cleaned up.
- Check for any containers and pods that are running, which should include the
- Manage a Rootfull Pod
Perform the following tasks as the root user:
- Become the
root
user. - Check for any containers and pods that are running, which should include the
root-wp-pod
pod and its containers. - Pause the
root-wp-pod
pod, along with its containers. - Check the pods and containers again, and confirm that they have been paused.
- Unpause the
root-wp-pod
pod. - Check the pods and containers again, and confirm that they have been unpaused.
- Pull performance statistics for the
root-wp-pod
pod and its containers. - Stop the
root-wp-pod
pod. - Clean up any reclaimable space using
podman system
andpodman pod
commands, and confirm it has been cleaned up.
- Become the