12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Star 3,067 Fork 1,523 Watch 170 Follow @collabnix 886
The Ultimate Docker Cheat Sheet
Docker - Beginners | Intermediate | Advanced
View on GitHub Join Slack Docker Cheatsheet Docker Compose Cheatsheet Follow us on Twitter
The Ultimate Docker Cheat Sheet
Complete Docker CLI
https://dockerlabs.collabnix.com/docker/cheatsheet/ 1/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Container Management CLIs
Inspecting The Container
https://dockerlabs.collabnix.com/docker/cheatsheet/ 2/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Interacting with Container
https://dockerlabs.collabnix.com/docker/cheatsheet/ 3/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Image Management Commands
Image Transfer Commands
https://dockerlabs.collabnix.com/docker/cheatsheet/ 4/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Builder Main Commands
https://dockerlabs.collabnix.com/docker/cheatsheet/ 5/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
The Docker CLI
Manage images
docker build
docker build [options] .
-t "app/container_name" # name
Create an image from a Dockerfile.
docker run
docker run [options] IMAGE
https://dockerlabs.collabnix.com/docker/cheatsheet/ 6/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
# see `docker create` for options
Run a command in an image .
Manage containers
docker create
docker create [options] IMAGE
-a, --attach # attach stdout/err
-i, --interactive # attach stdin (interactive)
-t, --tty # pseudo-tty
--name NAME # name your image
-p, --publish 5000:5000 # port map
--expose 5432 # expose a port to linked containers
-P, --publish-all # publish all ports
--link container:alias # linking
-v, --volume `pwd`:/app # mount (absolute paths needed)
-e, --env NAME=hello # env vars
Example
$ docker create --name app_redis_1 \
--expose 6379 \
redis:3.0.2
Create a container from an image .
docker exec
docker exec [options] CONTAINER COMMAND
-d, --detach # run in background
-i, --interactive # stdin
-t, --tty # interactive
Example
$ docker exec app_web_1 tail logs/development.log
$ docker exec -t -i app_web_1 rails c
Run commands in a container .
https://dockerlabs.collabnix.com/docker/cheatsheet/ 7/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
docker start
docker start [options] CONTAINER
-a, --attach # attach stdout/err
-i, --interactive # attach stdin
docker stop [options] CONTAINER
Start/stop a container .
docker ps
$ docker ps
$ docker ps -a
$ docker kill $ID
Manage container s using ps/kill.
Images
docker images
$ docker images
REPOSITORY TAG ID
ubuntu 12.10 b750fe78269d
me/myapp latest 7b2431a8d968
$ docker images -a # also show intermediate
Manages image s.
docker rmi
docker rmi b750fe78269d
Deletes image s.
Also see
Getting Started (docker.io)
Dockerfile
Inheritance
https://dockerlabs.collabnix.com/docker/cheatsheet/ 8/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
FROM ruby:2.2.2
Variables
ENV APP_HOME /myapp
RUN mkdir $APP_HOME
Initialization
RUN bundle install
WORKDIR /myapp
VOLUME ["/data"]
# Specification for mount point
ADD file.xyz /file.xyz
COPY --chown=user:group host_file.xyz /path/container_file.xyz
Onbuild
ONBUILD RUN bundle install
# when used with another file
Commands
EXPOSE 5900
CMD ["bundle", "exec", "rails", "server"]
Entrypoint
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2
Configures a container that will run as an executable.
ENTRYPOINT exec top -b
This will use shell processing to substitute shell variables, and will ignore any CMD or docker run command line
arguments.
https://dockerlabs.collabnix.com/docker/cheatsheet/ 9/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Metadata
LABEL version="1.0"
LABEL "com.example.vendor"="ACME Incorporated"
LABEL com.example.label-with-value="foo"
LABEL description="This text illustrates \
that label-values can span multiple lines."
See also
https://docs.docker.com/engine/reference/builder/
docker-compose
Basic example
# docker-compose.yml
version: '2'
services:
web:
build: .
# build from Dockerfile
context: ./Path
dockerfile: Dockerfile
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: redis
Commands
docker-compose start
docker-compose stop
docker-compose pause
docker-compose unpause
docker-compose ps
docker-compose up
docker-compose down
https://dockerlabs.collabnix.com/docker/cheatsheet/ 10/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Reference
Building
web:
# build from Dockerfile
build: .
# build from custom Dockerfile
build:
context: ./dir
dockerfile: Dockerfile.dev
# build from image
image: ubuntu
image: ubuntu:14.04
image: tutum/influxdb
image: example-registry:4000/postgresql
image: a4bc65fd
Ports
ports:
- "3000"
- "8000:80" # guest:host
# expose ports to linked services (not to host)
expose: ["3000"]
Commands
# command to execute
command: bundle exec thin -p 3000
command: [bundle, exec, thin, -p, 3000]
# override the entrypoint
entrypoint: /app/start.sh
entrypoint: [php, -d, vendor/bin/phpunit]
Environment variables
# environment vars
environment:
RACK_ENV: development
https://dockerlabs.collabnix.com/docker/cheatsheet/ 11/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
environment:
- RACK_ENV=development
# environment vars from file
env_file: .env
env_file: [.env, .development.env]
Dependencies
# makes the `db` service available as the hostname `database`
# (implies depends_on)
links:
- db:database
- redis
# make sure `db` is alive before starting
depends_on:
- db
Other options
# make this service extend another
extends:
file: common.yml # optional
service: webapp
volumes:
- /var/lib/mysql
- ./_data:/var/lib/mysql
Advanced features
Labels
services:
web:
labels:
com.example.description: "Accounting web app"
DNS servers
services:
web:
dns: 8.8.8.8
dns:
https://dockerlabs.collabnix.com/docker/cheatsheet/ 12/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
- 8.8.8.8
- 8.8.4.4
Devices
services:
web:
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
External links
services:
web:
external_links:
- redis_1
- project_db_1:mysql
Hosts
services:
web:
extra_hosts:
- "somehost:192.168.1.100"
sevices
To view list of all the services runnning in swarm
docker service ls
To see all running services
docker stack services stack_name
to see all services logs
docker service logs stack_name service_name
To scale services quickly across qualified node
docker service scale stack_name_service_name=replicas
clean up
https://dockerlabs.collabnix.com/docker/cheatsheet/ 13/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
To clean or prune unused (dangling) images
docker image prune
To remove all images which are not in use containers , add - a
docker image prune -a
To prune your entire system
docker system prune
To leave swarm
docker swarm leave
To remove swarm ( deletes all volume data and database info)
docker stack rm stack_name
To kill all running containers
docker kill $(docekr ps -q )
Contributor -
Sangam biradar - Docker Community Leader
Practice Docker Tutorial
free Ubuntu VM
Join Collabnix Discord Channel
https://dockerlabs.collabnix.com/docker/cheatsheet/ 14/15
12/6/22, 12:04 PM The Ultimate Docker Cheat Sheet | dockerlabs
Tweets by @collabnix
Collabnix
@collabnix
9 Best Docker and Kubernetes Resources for All
Levels collabnix.com/9-best-docker-…
Embed View on Twitter
dockerlabs is maintained by collabnix.
This page was generated by GitHub Pages.
0.64g of CO2/view Website Carbon
Cleaner than 39% of pages tested
https://dockerlabs.collabnix.com/docker/cheatsheet/ 15/15