mirror of
https://github.com/containers/podman.git
synced 2025-05-28 21:46:51 +08:00
118 lines
2.7 KiB
Bash
Executable File
118 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# test_podman_pods.sh
|
|
# A script to be run at the command line with Podman installed.
|
|
# This should be run against a new kit to provide base level testing
|
|
# on a freshly installed machine with no images or container in
|
|
# play. This currently needs to be run as root.
|
|
#
|
|
#
|
|
# To run this command:
|
|
#
|
|
# /bin/bash -v test_podman_baseline.sh -e # Stop on error
|
|
# /bin/bash -v test_podman_baseline.sh # Continue on error
|
|
#
|
|
|
|
set -x
|
|
|
|
# This scripts needs the jq json parser
|
|
if [ -z $(command -v jq2) ]; then
|
|
echo "This script requires the jq parser"
|
|
exit 1
|
|
fi
|
|
|
|
# process input args
|
|
stoponerror=0
|
|
while getopts "den" opt; do
|
|
case "$opt" in
|
|
e) stoponerror=1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
if [ "$stoponerror" -eq 1 ]
|
|
then
|
|
echo "Script will stop on unexpected errors."
|
|
set -e
|
|
trap "Failed test ..." ERR
|
|
fi
|
|
|
|
|
|
########
|
|
# Create a named and unamed pod
|
|
########
|
|
podman pod create --name foobar
|
|
podid=$(podman pod create)
|
|
|
|
########
|
|
# Delete a named and unamed pod
|
|
########
|
|
podman pod rm foobar
|
|
podman pod rm $podid
|
|
|
|
########
|
|
# Create a named pod and run a container in it
|
|
########
|
|
podman pod create --name foobar
|
|
ctrid=$(podman run --pod foobar -dt docker.io/library/alpine:latest top)
|
|
podman ps --no-trunc | grep $ctrid
|
|
|
|
########
|
|
# Containers in a pod share network namespace
|
|
########
|
|
podman run -dt --pod foobar docker.io/library/nginx:latest
|
|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
|
|
|
|
########
|
|
# There should be 3 containers running now
|
|
########
|
|
let numContainers=$(podman pod ps --format json | jq -r '.[0] .numberOfContainers')
|
|
[ $numContainers -eq 3 ]
|
|
|
|
########
|
|
# Pause a container in a pod
|
|
########
|
|
podman pause $ctrid
|
|
[ $(podman ps -a -f status=paused --format json | jq -r '.[0] .id') == $ctrid ]
|
|
|
|
########
|
|
# Unpause a container in a pod
|
|
########
|
|
podman unpause $ctrid
|
|
podman ps -q --no-trunc | grep $ctrid
|
|
|
|
########
|
|
# Stop a pod and its containers
|
|
########
|
|
podman pod stop foobar
|
|
[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ]
|
|
|
|
########
|
|
# Start a pod and its containers
|
|
########
|
|
podman pod start foobar
|
|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
|
|
|
|
########
|
|
# Pause a pod and its containers
|
|
########
|
|
podman pod pause foobar
|
|
[ $(podman pod ps --format json | jq -r '.[0] .status') == "Paused" ]
|
|
|
|
########
|
|
# Unpause a pod and its containers
|
|
########
|
|
podman pod unpause foobar
|
|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
|
|
|
|
########
|
|
# Kill a pod and its containers
|
|
########
|
|
podman pod kill foobar
|
|
[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ]
|
|
|
|
########
|
|
# Remove all pods and their containers
|
|
########
|
|
podman pod rm -fa
|