Difference between revisions of "Podman"
From John Freier
Line 26: | Line 26: | ||
'''Remove Image''' | '''Remove Image''' | ||
podman rmi {image_sha} | podman rmi {image_sha} | ||
+ | |||
+ | == Pods == | ||
'''Create a pod''' | '''Create a pod''' | ||
Line 42: | Line 44: | ||
podman ps -a --pod | podman ps -a --pod | ||
− | + | == Images == | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
'''Load an Image''' | '''Load an Image''' | ||
Line 57: | Line 55: | ||
'''Update the tag for an image''' | '''Update the tag for an image''' | ||
podman tag e7b8dd57dec6 cs:latest | podman tag e7b8dd57dec6 cs:latest | ||
+ | |||
+ | == Kube == | ||
+ | |||
+ | '''Generate kubernetes yaml''' | ||
+ | podman generate kube -f infra.yaml mypod | ||
+ | |||
+ | '''Load kubernetes yaml''' | ||
+ | podman play kube infra.yaml | ||
+ | |||
+ | == Examples == | ||
+ | |||
'''Example run MongoDB''' | '''Example run MongoDB''' |
Revision as of 06:54, 8 April 2022
List Images
podman images
List running images
podman ps
Pull an image
podman pull docker.io/library/httpd
Run an image
podman run -dt -p 8080:80/tcp docker.io/library/httpd
View Logs
podman logs ff22b3bfecc1
Stop the latest container
podman stop ff22b3bfecc1
List all containers
podman ps -a
Remove Container
podman rm ff22b3bfecc1
Remove Image
podman rmi {image_sha}
Contents
Pods
Create a pod
podman pod create --name mypod
List pods
podman pod list
Start pod
podman pod start {podname}
Stop pod
podman pod stop {podname}
List all processes with pods
podman ps -a --pod
Images
Load an Image
Worked cat cs-oci.tar | podman load Did not work. podman load oci-archive:cs-oci.tar:latest
Update the tag for an image
podman tag e7b8dd57dec6 cs:latest
Kube
Generate kubernetes yaml
podman generate kube -f infra.yaml mypod
Load kubernetes yaml
podman play kube infra.yaml
Examples
Example run MongoDB
podman run \ --detach \ --publish 27017:27017 \ --userns=keep-id \ --volume ./mongo-data:/data/db \ --name some-mongo \ mongo:4.4.13 # --detach, -d - Detached mode: run the container in the background and print the new container ID. The default is false # --publish, -p - Publish a container’s port, or range of ports, to the host. # --userns - Because podman runs rootless we need to assign a user that can access the local volumn. This sets the podman user to the same user who ran the podman command. # --volume, -v - Create a bind mount. # --name - Assign a name to the container.
Example running with pods This is a test to see how apps can talk between each other in a podman network within a pod.
Create the pod
podman pod create --userns=keep-id --publish 8080:8080 --name mypod
podman run --detach --volume ./mongo-data:/data/db --pod mypod --name some-mongo mongo:4.4.13
podman run --detach --pod mypod --name myapp -e SPRING_DATA_MONGODB_HOST="localhost" -e CS_DATABASE_MONGODB_EMBEDED_ENABLED="false" e7b8dd57dec6
Not used - only for debug podman run -it --pod mypod --name myapp --volume ./config:/config --entrypoint "/bin/sh" e7b8dd57dec6