In this challenge, you will need to perform the most fundamental Docker operation - start a container.
You can use any container image you like,
but we recommend choosing a long-running container (e.g., nginx
)
because to complete this challenge you will also need to inspect the running container and answer a few questions about it.
Hint 1 π‘
It's an easy one - docker --help
is your friend.
To keep track of containers, Docker assigns a unique ID to each of them. Can you find the ID of the container that you've just started?
Hint 2 π‘
Same advice as in the previous hint - docker --help
is your friend π
Now, when you have a running container, let's try to understand what it actually is.
Did you know that Docker containers are "just" Linux processes? Can you locate the main container's process? What is its PID?
Hint 3 π‘
If containers are regular Linux processes, will they show up in ps
or top
output? π€
Hint 4 π‘
Entered a PID of a process that definitely belongs to the container, but the solution checker doesn't accept it? One of the key Docker design principles is to run one service per container. However, it doesn't mean that every container will have only one process inside. Actually, more often than not, you'll find a whole process tree inside a container. Try identifying the root process of that tree. That's what the checker expects.
Hint 5 π‘
Still having trouble?
You can always fall back to docker inspect
to cross-check your findings.
Approximating containers to regular Linux processes is helpful, but it's not very accurate. Thinking of containers as of boxes for processes might be even more helpful at times.
From inside the box, it may look like the containerized app is running on its own machine. In particular, such a virtualized environment will have its own network interface and an IP address. Can you find the IP address of the container that you've just started?
Hint 6 π‘
There are many ways to find the container IP address.
If you're a Linux guru, you can try your luck with ip netns
and ip addr
.
Hint 7 π‘
Don't feel comfortable messing with Linux network namespaces?
You can always use the docker inspect
command to find the container IP address.
Level up your Server Side game β Join 9,000 engineers who receive insightful learning materials straight to their inbox