Sitemap

Universal Docker Tips: How to Use Docker the Right Way

3 min readNov 14, 2017

--

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 images

Tag 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=true

Delete 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 -d

To run custom .yml file (docker-compose-sample.yml)

docker-compose -f docker-compose-sample.yml up -d

To run multiple .yml files

docker-compose -f sample.yml -f sample2.yml up -d

CONTAINERS

List the Containers

docker ps

List the Containers with exist status

docker ps -a

Check 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_name

List Stacks running

docker stack ls

Remove the stack

docker stack rm my_stack_name

Service

List services

docker service ls

List 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 volumes

Inspect Volume

docker volume inspect <VOLUME_NAME> # details about the volume

List Dangling Volumes

docker volume ls -f dangling=true

Remove 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 prune

prune 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

--

--

Jinna Baalu
Jinna Baalu

Written by Jinna Baalu

Devops Solution Architect | Managing Consensus based Distributed Clusters | Centralised Logging 4M/15min | ELK | Prometheus | Kafka | Cassandra | Mongo