########## Docker ##########
## To pull the image from registry
docker pull <registry>/<repository>:<tag>
docker pull docker.io/busybox:latest
## To list images on the host machine
docker image ls
docker images
## To run container in detached mode
docker container run --detach --name <name-to-container> <container-name>
docker container run -d --name <name-to-container> <container-name>
## To run container in interactive mode
docker container run --tty --interactive --name <name-to-container> <container-name>
docker container run -it --name <name-to-container> <container-name>
## To execute comand on running container
docker container exec --tty --interactive <name-to-container> <cmd-to-run>
docker container exec -it <name-to-container> <cmd-to-run>
## To inspect docker container
docker container inspect <container-name>
## To list running containers
docker container ls
## To list all the containers including running, exited
docker ps
docker ps -a
docker container ls -a
docker container ls -all
## To list all the containers with exit statue
docker ps -a --filter "status=exited"
docker container ls -a --filter "status=exited"
## To list all the containers with running status
docker ps --filter status=running
docker container ls --filter status=running
## To list container id's
docker container ls --all --quiet
docker container ls -a -q
## To check the stats
docker container stats <container-id>
## To check the logs
docker container logs <container-id>
## To check process running inside container
docker container top <container-id>
## To check disk space that docker is using
docker system df
## To remove stopped containers, unused volumes, networks, and dangling images
docker system prune
## To remove dangling images
docker image prune
## To remove stopped containers
docker container prune
## To List all networks
docker network ls
## To create network
docker network create <network-name>
docker network create -d <driver> <network-name>
docker network create --driver <driver> <network-name>
## To display detailed information of network
docker network inspect <network-name>
## List port mappings for the container
docker container port <container-id>
## To Remove one or more networks
docker network rm <network-name>
## Create volume
docker volume create <vol-name>
## Bind Mount local directory to container
docker container run --mount type=bind,source=<source-path>,target=<target-path> <image-name>
docker container run -v <source-path>:<target-path> <image-name>
## Mount local directory to container
docker container run --mount type=volume,source=<vol-name>,target=<target-path> <image-name>
docker container run -v <vol-name>:<target-path> <image-name>
## To run container with restart policy
docker container run -d --restart always <image-name>
docker container run -d --restart on-failure <image-name>
docker container run -d --restart unless-stopped <image-name>
## To create docker secret
echo "<secret>" | docker secret create <my_secret> -
echo "pass123" | docker secret create db_pass -
## To create docker secret using file
docker secret create <my_secret> <file-name>
docker secret create db_pass pass-file.txt
## To list the secrets in docker
docker secret ls
## To inspect secret
docker secret inspect <my_secret>
docker secret inspect db_pass
## To removes a secret
docker secret rm <my_secret>
docker secret rm db_pass
########## DOCKER COMPOSE ##########
## To create and start the container
docker-compose up
## To create and start the container in detached mode
docker-compose up --detach
docker-compose up -d
## To List all the containers
docker-compose ps
## To Display services
docker-compose ps --services
## To scale particular service in docker-compose
docker-compose up --detach --scale <service-name>=<count>
## Stops containers and removes containers, networks, volumes, and images created
docker-compose down
docker-compose config
##List images used by the created containers
docker-compose images
## To view logs output from services
docker-compose logs
docker-compose logs --tail=10
## To stop running containers without removing them
docker-compose stop
## To start running containers for service
docker-compose start
## Displays the running processes
docker-compose top
########## DOCKER SWARM ##########
## To initialize swarm mode
docker swarm init --advertise-addr <IP-Address>
## To create Token for Worker/Manager
docker swarm join-token worker
docker swarm join-token manager
## To list swarm nodes in the cluster
docker node ls
## To leave worker node from the swarm
docker swarm leave
## To remove worker node from the swarm
docker node rm <node-name>
## To promote node to worker
docker node promote <node-name>
## To demote node to worker
docker node demote <node-name>
## To update role of node
docker node update --role <manager|worker> <node-name>
## To create service 3 replicas
docker service create --name <service-name> --replicas <no-of-replicas> <image-name>
docker service create --name web-server --replicas 3 nginx:latest
## To adds a published service port to an existing service
docker service update --publish-add published=<hport>,target=<cport> <service-name>
docker service update --publish-add published=8080,target=80 web-server
## To update no. of replicas
docker service update --replicas=<count> <service-name>
docker service update --replicas=3 web-server
## To check status of running service
docker service ps <service-name>
docker service ps web-service
## To check logs of service
docker service logs <service-name>
docker service logs web-server
## To scale replicas of service
docker service scale <service-name>=<no-of-replicas>
docker service scale web-server=6
## To run one task for the service on every available node in the cluster
docker service create --name <service-name> mode=global <image-name>
docker service create --name web-server mode=global busybox
## To update service to use new docker image
docker service update --image <new-image> <service-name>
docker service update --image nginx:alpine web-server
## To create service on Manager Node only
docker service create --constraint="node.role==manager" <image-name>
## To create service on Worker Node only
docker service create --constraint="node.role==worker" <image-name>