Home Server Starting with Docker: Command essentials for new users

Starting with Docker: Command essentials for new users

Docker has revolutionized containerization, and mastering its commands is key. Dive into our introductory guide and get acquainted with the foundational commands to kickstart your Docker adventure.

by Arun Kumar
docker for beginners commands

As a tech enthusiast, you’re probably aware of how rapidly the world of containerization is evolving, with Docker at the forefront of this movement. When I first started with Docker, I felt both intrigued and overwhelmed. However, I soon realized that every great challenge comes with a great reward.

This blog post is designed to help those who are new to Docker or seeking to deepen their understanding. We’ll explore some basic Docker command lines and provide clear explanations of what they do, along with sample outputs to guide you. Whether you’re a beginner or an experienced user, you’ll find something useful here. So, let’s embark on this exciting Docker journey together!

Getting started: Installing Docker

Before diving into command lines, let’s ensure Docker is installed on your system. If it’s not, head over to our search box and look for Docker installation guides on various Linux distros. It’s super straightforward. Honestly, the installation process is so smooth; it’s one of the things I love about Docker!

Command:

docker --version

Purpose: This checks the installed version of Docker on your system.

Output:

Docker version 20.10.7, build f0df350

Running your first Docker container

After installation, you would probably be itching to run your first container. And why not? The thrill of it is simply unmatched.

Command:

docker run hello-world

Purpose: This command fetches the hello-world image (if it’s not already downloaded) and runs it. It’s Docker’s way of saying “Hello” to newcomers.

Output:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Listing Docker containers

Knowing which containers are running is essential. Trust me; once you get started, it’s easy to lose track!

Command:

docker ps

Purpose: This lists all running containers. Add -a to see all containers, whether they’re running or not.

Output:

CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS         PORTS     NAMES
a3b4c56d7890   nginx          "/docker-entrypoint.…"   3 minutes ago  Up 3 minutes   80/tcp   nostalgic_colden

Fetching Docker images

Just like a kid in a candy store, you would want to try out different images. Here’s how to fetch them.

Command:

docker pull nginx

Purpose: This downloads the nginx image from Docker’s public registry.

Output:

Using default tag: latest
latest: Pulling from library/nginx
...
Status: Downloaded newer image for nginx:latest

Checking out those Docker images

I’m always curious to see what images I have. If you’re like me, this command is your best friend.

Command:

docker images

Purpose: Lists all the images stored locally on your system.

Output:

REPOSITORY    TAG      IMAGE ID       CREATED        SIZE
nginx         latest   4bb46517cac3   3 weeks ago    133MB
hello-world   latest   bf756fb1ae65   4 months ago   13.3kB

Giving your container a whirl: Start, Stop, and Restart

Containers are like digital pets. Sometimes you need to pause them, start them, or give them a gentle reboot.

Commands:

  • Start:
docker start <container-name/container-id>
  • Stop:
docker stop <container-name/container-id>
  • Restart:
docker restart <container-name/container-id>

Purpose: Manages the lifecycle of your containers. So, it’s a bit like being a digital pet owner.

Example Output for Start:

nostalgic_colden

Bidding adieu: Removing containers and images

Cleaning up is vital. Though I’m not the best at tidying my room, I do keep my Docker environment spick and span!

Commands:

  • Remove container:
docker rm <container-name/container-id>
  • Remove image:
 docker rmi <image-name/image-id>

Purpose: Keep your Docker environment free from unnecessary containers and images.

Delving into Docker Troubleshooting: Tips to Save Your Day

Docker’s convenience and utility have never been in question, but like all technologies, you’re bound to hit some snags from time to time. Over my Docker journey, I’ve stumbled, fumbled, and learned. And just as we discussed some basic Docker commands earlier, let’s take a leap into common troubleshooting techniques that have come to my rescue time and again.

1. Container not starting? Check the logs

Whenever a container refuses to start or crashes unexpectedly, the logs are your first stop.

Command:

docker logs <container-name/container-id>

Purpose: To view the logs of a specific container.

Output:

2023/10/16 14:55:03 [emerg] 1#1: host not found in upstream "example.com" in /etc/nginx/nginx.conf:12

Ah! The error shows an issue with the nginx configuration.

2. Running out of disk space? Clean up!

Over time, you might accumulate unused images, containers, and volumes. Clean them up periodically.

Command:

docker system prune -a

Purpose: This removes all unused containers, networks, and images (both dangling and unreferenced).

Output:

Total reclaimed space: 1.5GB

3. Connectivity issues? Examine your networks

If you’re facing networking issues between containers, or with external connections, inspect your Docker networks.

Command:

docker network ls

Purpose: Lists all the networks set up in Docker.

Output:

NETWORK ID     NAME      DRIVER    SCOPE
a1b2c3d4e5f6   bridge    bridge    local

4. Getting unexpected behavior? Check Docker version

Sometimes, features or behavior can vary between Docker versions. Ensure you’re running a version compatible with your needs.

Command:

docker --version

Purpose: Check the installed version of Docker.

Output:

Docker version 20.10.7, build f0df350

5. Problems with an image? Dive deeper with inspect

If you’re curious about an image’s details or need to debug, the inspect command is immensely helpful.

Command:

docker inspect <image-name/image-id>

Purpose: Provides detailed information about the image.

Output: (Only a snippet shown for brevity)

...
"Config": {
    "Hostname": "a3b4c5d6e7f8",
    "Domainname": "",
    "User": "",
    ...
}
...

6. Port conflicts? Check exposed ports

Port conflicts are common if you run multiple containers with exposed ports. Ensure you’re not double-booking ports.

Command:

docker ps

Purpose: Check running containers and their port configurations.

Output:

CONTAINER ID   IMAGE    COMMAND      CREATED     STATUS     PORTS                    NAMES
a3b4c56d7890   nginx    "start"      5 days ago  Up 2 days  0.0.0.0:80->80/tcp       webserver

7. Image not pulling? Test your internet connection

Occasionally, I’ve been befuddled by images not pulling, only to realize my internet was down. It happens to the best of us!

Command: (Not a Docker command)

ping google.com

Purpose: Check if your internet connection is active.

Output:

PING google.com (216.58.217.46): 56 data bytes
64 bytes from 216.58.217.46: icmp_seq=0 ttl=37 time=23.287 ms

Conclusion

My experience with Docker has been an enlightening journey. From the various commands available, some of which I use daily, others that I occasionally look up, to the significance of each command, Docker has proven to be a great technological marvel. However, the beauty of Docker extends beyond its technological capabilities to its community and extensive documentation that are readily available to every user.

Whenever you are in doubt, using the community’s resources and support is the best way to get back on track. I hope you found this article informative, useful and inspiring. If you have any preferred Docker commands or personal experiences that you would like to share, feel free to do so. Sharing insights is what makes the tech community so vibrant, and the learning never stops.

You may also like

Leave a Comment

fl_logo_v3_footer

ENHANCE YOUR LINUX EXPERIENCE.



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us

Subscribe

©2016-2023 FOSS LINUX

A PART OF VIBRANT LEAF MEDIA COMPANY.

ALL RIGHTS RESERVED.

“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.