User Tools

Site Tools


linux:docker:docker_cheatsheet

[CHEATSHEET] docker

Container registry

AWS

aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com

Images

image list

docker images -a
docker image ls -a

remove image

docker image rm ${IMAGE_ID}

pull image

docker pull ${AWS_ACCOUNT_ID}.dkr.ecr.eu-west-3.amazonaws.com/public/library/mysql:8

Tag image (easy way to find it)

docker tag ${IMAGE_ID} mysql8

Image internal config

entrypoint

docker inspect --format='{{.Config.Entrypoint}}' ${IMAGE_ID}

cmd

docker inspect --format='{{.Config.Cmd}}' ${IMAGE_ID}

Running

Run image

Just run

docker run ${IMAGE_ID}

Add environment variables from a file

docker run --env-file env_vars.sh ${IMAGE_ID}

Expose a port

same syntax as ssh tunnel :-)

docker run -p 13306:3306 ${IMAGE_ID}

Drop the container from filesystem after exit

same syntax as ssh tunnel :-)

docker run -rm ${IMAGE_ID}

Spawn a shell instead of the ENTRYPOINT

docker run -it --entrypoint bash ${IMAGE_ID}

process list

process container list

stop container

docker container stop ${CONTAINER_ID}

Run with another CPU architecture

WARNING: see setup!!!

docker run --rm -ti --platform linux/arm64 public.ecr.aws/docker/library/debian:bookworm-slim uname -a

container deletion

docker container rm CONTAINER_HASH

Destroy all:

docker container prune -a

or:

for i in $(docker container ls -a| egrep -v "^CONTAINER ID"|awk '{print $1}') ; do docker container rm ${i} ; done

Building

prune cache

docker build prune

or for buildx:

docker buildx prune

Multi-arch

Setup

Install qemu:

pacman -S qemu qemu-user-static qemu-user-static-binfmt

As the user which runs docker commands:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

Check:

docker run --rm -ti --platform linux/arm64 public.ecr.aws/docker/library/debian:bookworm-slim uname -a
linux/docker/docker_cheatsheet.txt · Last modified: 2024/11/19 16:06 by dodger