Professional Documents
Culture Documents
Docker Commands
Docker Commands
Dictionary
Contents
Pull image from registry – docker pull <image name e.g. nginx>
List images on docker host - docker images ls
Create container with an image – docker run -d –name <container name> <image name>
List containers – docker ps
Creating image – docker build <dockerfile>
Docker Networking
Show IP address and all network information – ip add show (ifconfig, now deprecated in
some OS)
Check docker bridge – docker network inspect bridge
Check docker host – docker network inspect host
Add container on the host – docker run -itd –name nginx1 –net=host nginx
Inspect container – docker inspect <container id> or <container name>
Remove all custom network which are not in use – docker network prune
Docker Images
List images from specific repository – docker image ls <repo name, e.g. nginx>
List images created before specific image – docker image ls –filter ‘before=<image id>’
List images created after specific image – docker image ls –filter ‘after=<image id>’
List images in specific formatted output - docker image ls --format "{{.ID}} - {{.Repository}}"
Delete image – docker image rm <image id>
Delete multiple images – docker image rm <image1 id> <image2 id> <reportsitory:tag>
4
Docker Commands
Building image using Dockerfile – docker build -t <new image name> <dockerfile path>
Running a container using new image – docker run -d --name <container name> <image
name>
Docker commit
Download an image (docker pull), create a container with that image, do ‘docker exec…’ to
connect to the container BASH, update the container (download some software, run apt-get
update)
Commit the changes done to the container to a new image – docker container commit
<container name> <new image name>
Docker commit with parameters – docker container commit –message=”test” –
author=”test” <container name> <new image name>
Login with Docker hub credentials – docker login -u <username> and then … <password>
Tag the image with username/repo name – docker tag <image name> <user
name>/<repository name>
Push the image to Docker hub – docker push <user name>/<repository name>
Create container with tmpfs volume - docker run -itd --tmpfs <temporary volume path>(/app)
<image name>
Create container with tmpfs volume using ‘mount’ flag - docker run -itd --mount
type=tmpfs,target=<target volume path>(/app) <image name>
Docker Compose
Docker Swarm
Generate worker token to join the swarm – docker swarm join-token worker
View swarm information (managers, workers) – docker info
To change the token for manager nodes – docker swarm join-token –rotate manager
To change the token for worker nodes – docker swarm join-token –rotate worker
To view the list of managers & worker nodes (from Manager node only) – docker node ls
Add labels to managers / workers – docker node update –label-add <label> <manager
name>/<worker name>
Promote a worker to manager – docker swarm promote <worker name>
Demote a manager to worker – docker swarm demote <manager name>
To make a worker leave the swarm – docker swarm leave
Docker services
Create a new service – docker service create –replicas <no of replicas> --name <name of
service> <image name>
Scale service – docker service scale <service name>=<number of nodes> <service name>
Create service with volume mount – docker service create –replicas<no of replicas> --
mount type=volume,source=<source folder>,target=<target folder path> --name <name of
service> <image name>
Remove mount volume from all nodes in swarm – docker service update --mount-rm
/<folder name> <service name>
Create service with specific image version – docker service create –name <service name>
<image name>:<version tag>
Update the image version of existing service on the swarm – docker service update – image
< image name>:<updated version tag> <service name>
Stopping a worker node from Manager – docker node update --availability drain <worker
name>
Starting a worker node from Manager - docker node update --availability active <worker
name>
Starting a service and publishing it on a particular port(TCP) - docker service create --
replicas 2 --publish published=8000,target=80 --name portsrv nginx
7
Docker Commands
Creating service and assigning specific hostname to nodes - docker service create --name
hostsrv --replicas 2 --hostname="{{.Node.ID}}-{{.Service.Name}}" nginx
Docker Secrets
Create a new secret using file – docker secret create <secret name> <secret file>
Associating secrets with Services - docker service create --name secng --replicas 3 --secret
secret1 nginx
Docker Stacks
Create a docker stack using the above docker-compose.yml file - docker stack deploy -c docker-
compose.yml mystack
Above deployment will create two service, Mongo DB running on Manager node only and nginx web
service running on all nodes.
For running UCP, license key is required. Download licence key from Docker Hub using docker
hub credentials.
DTR
Installing Docker Trusted Registry on a worker node - docker run -it --rm docker/dtr install --dtr-
external-url https://<Worker node IP/FQDN> --ucp-node worker1 --ucp-username <admin user
name> --ucp-url https://<Manager node IP/FQDN> --ucp-insecure-tls