Universal Docker Tips: How to Use Docker the Right Way
Are You Using Docker Correctly on Your Dev Machine? Uncover Hidden Pitfalls and Learn the Basics in Just a Few Minutes
Docker Images
List Images
docker imagesTag Image
docker tag <IMAGE_NAME_OR_IMAGE_ID>:latest <IMAGE_NAME>:0.0.1docker tag <IMAGE_NAME>:latest <IMAGE_NAME>:0.0.1
List Dangling Images
docker images -f dangling=trueDelete Unused Images / Remove Dangling Images
docker rmi $(docker images -f dangling=true -q)Delete all the images
docker rmi $(docker images -q)Docker compose
To run default docker-compose.yml file
docker-compose up -dTo run custom .yml file (docker-compose-sample.yml)
docker-compose -f docker-compose-sample.yml up -dTo run multiple .yml files
docker-compose -f sample.yml -f sample2.yml up -dCONTAINERS
List the Containers
docker psList the Containers with exist status
docker ps -aCheck the logs of the Container
docker logs <Container_ID>Stop Container
docker stop <Container_ID>Remove Container
docker stop <Container_ID> && docker rm <Container_ID>NOTE : To delete the container, do stop and then remove. We can’t remove the container when it is running.
Container inspection
docker container inspect <Container_ID>To Remove all Containers
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)Remove a container and its volume
docker rm -v <CONTAINER_NAME>To restart all container
docker restart $(docker ps -a -q)Stack
Deploy stack of services
docker stack deploy -c my_stack_file_name.yml my_stack_nameList Stacks running
docker stack lsRemove the stack
docker stack rm my_stack_nameService
List services
docker service lsList services with filter
docker service ls -f "id=0bcjw"docker service ls --filter mode=global
Service Logs
docker service logs --details <ServiceId>docker service logs --follow <ServiceId> #continue streaming
Format Services
docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}"Inspect Services
docker service inspect <SERVICE_NAME>docker service inspect --pretty <SERVICE_NAME>
Volume
List Volumes
docker volume ls # list all the volumesInspect Volume
docker volume inspect <VOLUME_NAME> # details about the volumeList Dangling Volumes
docker volume ls -f dangling=trueRemove Volume
docker volume rm <VOLUME_NAME>Remove Dangling Volumes
docker volume rm $(docker volume ls -f dangling=true -q)Clean up the docker
After working with Docker for some time, you start accumulating development junk: lot of the unused volumes, networks, exited containers and unused images, other way called as dangling images, dangling volumes.
Dangling Images:
Dangling images: Dangling images are layers that have no relationship to any tagged images. They no longer serve a purpose and consume disk space. They can be located by adding the filter flag, -f with a value of dangling=true to the docker images . Here is frequently used commands on docker images https://medium.com/@JinnaBalu/docker-frequently-used-commands-on-images-b812d76a4b8e
Dangling Volumes:
Point of volumes is to exist independent from containers, when a container is removed, a volume is not automatically removed at the same time. When a volume exists and is no longer connected to any containers, however, it’s called a dangling volume.
One Command to clean all docker junk
docker system pruneprune is a very useful command (also works for volume and network sub-commands)
Prune can also be replcaed by
Remove all dangling volumes
docker volume rm $(docker volume ls -q -f "dangling=true")Remove all dangling images
docker rmi $(docker images -q -f "dangling=true")Remove Exited Containers
docker rm $(docker ps -q -f "status=exited")Remove Container along with Volume
docker rm -v container_name