- PDF Link: cheatsheet-docker-A4.pdf, Category: Cloud
- Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-docker-A4
- Related posts: Kubernetes Yaml, #denny-cheatsheets
File me Issues or star this repo.
Name | Summary |
---|---|
Docker push: manifest invalid | Re-push a new version of the same docker tag may fail, due to permission |
Docker pull: missing signature key | Docker push again to resolve the issue |
Docker cp: Error response from daemon: not a directory | container folder is in a symbol link |
Find process id by container name | docker top $container_id , or docker top $container_name |
List resource usage by containers | docker stats |
Get dockerd storage driver | docker info , then check Storage Driver |
docker-containerd-shim | The Docker four components: Docker engine , containerd , containerd-shm and runC |
Name | Summary |
---|---|
Install docker on Ubuntu | apt-get install docker.io |
Install docker on CentOS | Use docker repo https://download.docker.com/linux/centos/docker-ce.repo |
Install docker in Debian 10 | Link: How To Install and Use Docker on Debian 10 |
Install old docker version | GitHub: install-old-docker.md |
Name | Summary |
---|---|
Start a ubuntu test env | docker run ubuntu:16.04 /bin/echo hello world |
Start a ubuntu 18.04 test env | docker run ubuntu:18.04 /bin/echo hello world |
Start a container run and stop | docker run --rm ubuntu:18.04 /bin/echo hello world |
Start a debian9 test env | docker run debian:9 /bin/echo hello world |
Start a centos test env | docker run centos:centos6 /bin/echo hello world |
Start a jenkins server | docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts |
Start a nginx server | docker run -t -d -p 8080:80 --name nginx-test nginx |
Start a mysql server | docker run -e MYSQL_ROOT_PASSWORD=password123 -e MYSQL_DATABASE=wordpress -d mysql:5.7 |
Start a nexus server | docker run -d -p 8082:8081 --name nexus -v /data/nexus-data:/nexus-data sonatype/docker-nexus3 |
Start a sshd server | docker run -t -d --privileged -p 5022:22 denny/sshd:latest /usr/sbin/sshd -D |
Start a ftp server | docker run -t -d -p 21:21 -p 20:20 -e USERNAME=${username} -e PASSWORD=${password} denny/proftproftpd:v1 |
Name | Summary |
---|---|
dockerd | |
containerd | |
cri-o | From Redhat |
rkt | a pod-native container engine for Linux from CoreOS. Stopped maintainance now |
Amazon ACS | supports DC/OS, Swarm, Kubernetes |
CoreOS Fleet | |
Cloud Foundry Diego | Not actively maintained any more |
Reference | CheatSheet: Docker, CheatSheet: CRI-O, CheatSheet: rkt, CheatSheet: containerd |
Name | Summary |
---|---|
Start docker container | docker run -p 4000:80 imgname |
Start docker container in detached mode | docker run -d -p 4000:80 imgname |
Start container with entrypoint changed | docker run -t -d --entrypoint=/bin/sh "$docker_image" |
Enter a running container | docker exec -it <container-id> sh |
Upload local file to container filesystem | docker cp /tmp/foo.txt mycontainer:/foo.txt |
Download container file local filesystem | docker cp mycontainer:/foo.txt /tmp/foo.txt |
Stop container | docker stop <hash> |
Remove container | docker rm <hash> |
Remove all containers | docker rm $(docker ps -a -q) |
Force shutdown of one given container | docker kill <hash> |
Login to docker hub | docker login |
Tag <image> | docker tag <image> username/repo:tag |
Docker push a tagged image to repo | docker push username/repo:tag |
Run image from a given tag | docker run username/repo:tag |
Create docker image | docker build -t denny/image:test . |
Name | Summary |
---|---|
Remove unused docker images | delete-unused-images.sh |
Delete all containers | delete-all-containers.sh |
Remove exited containers | docker rm $(docker ps --filter status=exited -qa) |
Docker prune images | docker image prune -f |
Docker prune volumes | docker volume prune -f |
Remove the specified image | docker rmi <imagename> |
Remove all docker images | docker rmi $(docker images -q) |
Remove orphaned docker volumes | docker volume rm $(docker volume ls -qf dangling=true) |
Remove dead containers | docker rm $(docker ps --filter status=dead -qa) |
Name | Summary |
---|---|
Change entrypoint to run nothing | entrypoint: ["tail", "-f", "/dev/null"] |
Set timezone in Dockerfile | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone |
Define multiple line command | GitHub: Dockerfile-example-multiline |
Name | Summary |
---|---|
Change restart policy | restart: always , Link: Compose file version 3 reference |
Mount file as volume | $PWD/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf:ro GitHub: sample-mount-file.yml |
Start compose env | docker-compose up , docker-compose up -d |
Stop compose env | docker-compose down , docker-compose down -v |
Check logs | docker-compose logs |
Name | Summary |
---|---|
Start docker container | docker run -p 4000:80 <imgname> |
Start docker container in detached mode | docker run -d -p 4000:80 imgname |
Start docker container and remove when exit | docker run -rm -it <imgname> sh |
Enter a running container | docker exec -it [container-id] sh |
Stop container | docker stop <hash> |
List all containers | docker ps , docker ps -a |
Remove container | docker rm <hash> , docker rm $(docker ps -a -q) |
Force shutdown of one given container | docker kill <hash> |
Login to docker hub | docker login |
Run image from a given tag | docker run username/repo:tag |
Tail container logs | docker logs --tail 5 $container_name |
Check container healthcheck status | docker inspect --format '{{.State.Health}}' $container_name |
List containers by labels | docker ps --filter "label=org.label-schema.group" |
Name | Summary |
---|---|
List all images | docker images , docker images -a |
Create docker image | docker build -t denny/image:<tag> . |
Docker push a tagged image to repo | docker push denny/image:<tag> |
Show the history of an image | docker history <image_name> |
Export image to file | docker save <image_name> > my_img.tar |
Load image to local registry | docker load -i my_img.tar |
Tag <image> | docker tag <image> username/repo:tag |
Name | Summary |
---|---|
Run container mounting socket file | docker run -v /var/run/docker.sock:/var/run/docker.sock -it alpine sh |
A different docker socket file | export DOCKER_HOST=unix:///my/docker.sock |
List containers | curl -XGET --unix-socket /var/run/docker.sock http://localhost/containers/json |
Stop container | curl -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/<container_id>/stop |
Start container | curl -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/<container_id>/start |
List events | curl --unix-socket /var/run/docker.sock http://localhost/events |
Create container | curl -XPOST --unix-socket /var/run/docker.sock -d '{"Image":"nginx:alpine"}' -H 'Content-Type: application/json' http://localhost/containers/create |
Links | Link: Develop with Docker Engine SDKs and API |
Name | Summary |
---|---|
Docker files | /var/lib/docker , /var/lib/docker/devicemapper/mnt |
Docker for Mac | ~/Library/Containers/com.docker.docker/Data/ |
Name | Summary |
---|---|
Pull ubuntu docker image | docker pull ubuntu |
man: command not found | apt-get update , apt-get install man |
ping: command not found | apt-get update , apt-get install iputils-ping |
dig: command not found | apt-get install dnsutils |
Name | Summary |
---|---|
Tail container logs | docker logs --tail 5 $container_name |
Check container healthcheck status | docker inspect --format '{{.State.Health}}' $container_name |
List containers | docker ps |
List all containers | docker ps -a |
List containers by labels | docker ps --filter "label=org.label-schema.group" |
List all images | docker images -a |
Name | Summary |
---|---|
Docker SDK | https://docs.docker.com/develop/sdk/examples/ |
Docker REST API | https://docs.docker.com/engine/api/v1.27/#tag/Container |
Docker Hub auto build | https://docs.docker.com/docker-hub/builds/#build-statuses-explained |
License: Code is licensed under MIT License.
https://github.com/JCMais/docker-linux-ci/blob/master/debian.dockerfile#L15-L16