Top Docker Commands explained - Use Them Everyday

In this post I want to share with you my most favorite Docker commands that I'm using every single day.

Up and build

If you are using Docker-compose most often you want to rebuild your images and then start them. In order to do that we are typically writing

docker-compose build
docker-compose up

This is totally fine but we can combine directly these 2 commands.

docker-compose up --build

In this it will check all images and build images which have updates and then start your docker-compose.

Processes

The next command that you need really often is to get a list of running docker processes.

docker ps

Docker ps

Here we can see all processes which are running at this moment. Here are all containers which are started. We can see IDs, names and commands which are being executed.

It is extremely important to check what containers are running and it might help you to debug your problem.

Additionally to that when you need a container ID to execute some command you can always take it from the processes.

Executing commands

Another command that I'm using really often is docker exec. It allows us to execute a command inside a container.

docker exec -it mla-web echo "1"

It will execute an echo command inside this container. But I can do better. For example I can open a rails console inside the container to do some commands.

docker exec it mla-web rails c

One more way how we can use docker exec is to jump inside the container shell to be able to access everything from inside.

docker exec it mla-web sh

It will open a shell of this container and now we can execute any commands inside this shell.

Logs

At some point you need to look on your logs to debug problems. For these we can use either docker logs or docker-compose logs.

docker-compose logs --tail 10 web-dev

It means that we want to see 10 last logs from the container web-dev.

Docker logs

Cleaning your system

One more super important command is docker prune. At some point when you develop with Docker you won't have any free space on your computer. It happens really a lot when you test images and recreate containers again and again. At this moment you need to clean everything.

docker system prune

Prune

By default it will remove all stopped containers, unused networks, images and cache.

But additionally to that you might want to clean all images which are not used now because they can also take quite a lot of space.

docker system prune -a --volumes

Now additionally to everything about it will remove all images which are not associated with container.

Docker zero downtime deployment

The last command that I want to show you is amazing for zero downtime deployment. If you are using Docker with Docker-compose in production you for sure want to restart all your containers and update them without downtime.

docker-compose up -d --build

We use this command when Docker-compose is already running on production. This command doesn't duplicate anything, it simply checks all your containers, pulls newer images if they are needed, builds everything and restarts all containers which are needed to be restarted.

Want to conquer your next JavaScript interview? Download my FREE PDF - Pass Your JS Interview with Confidence and start preparing for success today!

Did you like my post? Share it with friends!
Don't miss a thing!
Follow me on Youtube, Twitter or Instagram.
Oleksandr Kocherhin
Oleksandr Kocherhin is a full-stack developer with a passion for learning and sharing knowledge on Monsterlessons Academy and on his YouTube channel. With around 15 years of programming experience and nearly 9 years of teaching, he has a deep understanding of both disciplines. He believes in learning by doing, a philosophy that is reflected in every course he teaches. He loves exploring new web and mobile technologies, and his courses are designed to give students an edge in the fast-moving tech industry.