SEANK.H.LIAO

container tools

break the docker cli monoculture!

tools

You're tired of the docker monoculture or you really don't like docker's daemon model. There are other tools.

image management

commandbuildpullpushtagrm
dockerdocker build .docker pull $imgdocker push $imgdocker tag $img $tagdocker rmi $img
podmanpodman build .podman pull $imgpodman push $imgpodman tag $img $tagpodman rmi $img
buildahbuildah bud .buildah pull $imgbuildah push $imgbuildah tag $img $tagbuildah rmi $img
imgimg build .img pull $imgimg push $imgimg tag $img $tagimg rmi $img
ctr-ctr i pull $imgctr i push $imgctr i tag $img $tagctr i rm $img
crictl-crictl pull $img--crictl rmi $img
others

container management

commandrunstoprmexeccpstatus
dockerdocker run $imgdocker stop $condocker rm $condocker exec $con $cmddocker cp $src $dstdocker ps / docker top
podmanpodman run $imgpodman stop $conpodman rm $conpodman exec $con $cmdpodman cp $src $dstpodman ps / podman top
ctrctr run $img $id-ctr c rm---
crictlcrictl run $cconf $pconfcrictl stop $concrictl rm $concrictl exec $con $cmd-crictl ps
example full command
docker and podman

they share the same flags

1docker run --rm -it \
2  --name some-container \
3  --runtime=runsc \
4  -e MY_ENV=1 \
5  -v $(pwd)/data:/data \
6  -p 80:8080 \
7  $img
ctr

less capable

1ctr run --rm -t \
2  --runc-binary=runsc \
3  --env MY_ENV=1 \
4  --mount src=$(pwd)/data,dst=/data \
5  $img
multi

inspect