cheat:docker
# To start the docker daemon:
docker -d
# To build a docker image:
docker build -t <image-tag-name> <path-of-Dockerfile>
# To start a container with an interactive shell:
docker run -ti <image-name> /bin/bash
# To run a docker container in the background:
docker run -d <image-name>
# To "shell" into a running container (docker-1.3+):
docker exec -ti <container-name> bash
# To inspect a running container:
docker inspect <container-name> (or <container-id>)
# To get the process ID for a container:
docker inspect --format {{.State.Pid}} <container-name-or-id>
# To list (and pretty-print) the current mounted volumes for a container:
docker inspect --format='{{json .Volumes}}' <container-id> | python -mjson.tool
# To copy files/folders between a container and your host:
docker cp foo.txt mycontainer:/foo.txt
# To list currently running containers:
docker ps
# To list all containers:
docker ps -a
# To remove all stopped containers:
docker container prune
# To remove all stopped containers:
docker rm $(docker ps -qa)
# To list all images:
docker images
# To only see all images id:
docker image ls -q
# To remove all untagged images:
docker rmi $(docker images | grep "^<none>" | awk '{print $3}')
# To remove all volumes not used by at least one container:
docker volume prune
# To save image as tar archive:
docker save -o <archive-name>.tar <image-name>
# To restore image from a saved tar archive:
docker load -i <archive-name>.tar
# To remove an image:
docker image rm <image-name-or-id>
# To tag an image:
docker image tag <image-name>:<tag-name> <image-name>:<new-tag-name>
# To login into hub.docker.com:
docker login
# To push a docker image into dockerhub repository:
docker push <image-name>:<image-tag-name>
# List all networks daemon knows about:
docker network ls
# Create a specific network:
docker network create "<network_name>"
# Connect a specific container to a network:
docker network connect "<network_id|name>" "<container_id|name>"
# Disconnect a specific container from network:
docker network disconnect "<network_id|name>" "<container_id|name>"
# To see the logs of a background or stopped container:
docker logs <container-id>
# To publish a port of container on localhost:
docker run -p <localhost-port>:<container-port> <image-name>
# To create a docker volume:
docker volume create <volume-name>
# To see information of a docker volume:
docker volume inspect <volume-name>
# To use a volume in the container:
docker run -v <volume-name>:<folder-path-in-container> <image>
# To link current folder between host and container for development:
docker run <image-name> -v $(pwd):<folder-path-in-container> <image>
# To copy a file from the running container to host mechine:
docker cp <container-id>:<path/to/file> <host/copy/path>
# To copy a file from host mechine to the running container:
docker cp <host/copy/path> <container-id>:<path/to/file>
tldr:docker
# docker
# Manage Docker containers and images.
# Some subcommands such as `docker run` have their own usage documentation.
# More information: <https://docs.docker.com/engine/reference/commandline/cli/>.
# List all docker containers (running and stopped):
docker ps --all
# Start a container from an image, with a custom name:
docker run --name container_name image
# Start or stop an existing container:
docker start|stop container_name
# Pull an image from a docker registry:
docker pull image
# Display the list of already downloaded images:
docker images
# Open a shell inside a running container:
docker exec -it container_name sh
# Remove a stopped container:
docker rm container_name
# Fetch and follow the logs of a container:
docker logs -f container_name
$
cheat.sh