This exam closes the "Expose and connect containers" module of the Docker course. An application made of two containers no longer works as intended, and it is more exposed than it should be. You must bring it back into shape on your own, with no hints, using what the lessons of the module taught you. It teaches you nothing new, it checks what you have learned. Allow about 30 minutes on a virtual machine running Docker Engine 29.9.2.
What you will learn
- Say what the exam provides, what it expects and what it grades you on.
- Spot the lessons to review before you start.
- Read your result to decide whether to move on to the next module or to consolidate.
Prerequisites
The lessons of the modules "Discover Docker and run a container", "Build and publish an image", "Observe and troubleshoot a container" and "Expose and connect containers" must be finished, up to the last one, Isolating a container from the network: none or an internal network. The exam assumes that you know how to start, inspect, stop and remove a container, and that you have already published a port, created a network and isolated a container.
Use the lab environment you used for the previous lessons. The exam requires no volume, no Compose and no code to write.
What does the exam ask of you?
The statement describes a small application made of two containers and several findings. You must leave it in a state the lab can check: the application responds end to end, it is reachable only where the statement asks, and the service that holds the data stays out of reach.
Nobody tells you where each finding comes from. The statement describes symptoms, not their causes. The diagnosis is therefore part of the exam, just as much as the repair. This page does not describe the scenario, so that the exam stays a measurement. You will read it in the lab statement, and only there.
How is it graded?
The lab does not look at the commands you typed. It reads back the state of the system at the moment you hand in your work: what is running, what is reachable and what is published. Two different paths that end in the same state get the same grade, and the names you choose for whatever the statement does not impose are yours.
Five checks of equal weight share the grade, and you must reach 75 points to pass. The grade is the number of checks passed divided by five, multiplied by a scale of 100 points minus the cost of the hints you asked for.
One requirement comes on top of the threshold: a port published on the data service fails the exam, even with everything else in place. A good total does not make up for an exposed database.
With no hint, four checks passed out of five give 80 points and clear the threshold, provided the critical requirement is met. Each hint lowers the maximum you can reach:
| Hints requested | Scale | Checks to pass |
|---|---|---|
| None | 100 | 4 out of 5 (80 points) |
| The first | 90 | 5 out of 5 (4 out of 5 give 72) |
| The first two | 75 | 5 out of 5 |
| Three or more | 55 at most | Threshold not reachable |
Which rules apply?
This exam measures, it does not guide you. Three rules follow from that.
- The lab offers four hints, from the vaguest to the most explicit, and each one costs you points, from 10 for the first to 25 for the last. With two hints, you must pass all five checks; beyond two, the threshold is no longer reachable. An exam passed without a hint is therefore passed in full.
- You may consult the lessons of the course and the official Docker documentation, as you would at work.
- The statement explains nothing again, because the previous lessons have already taught what you need to know.
If you are stuck, measure before you fix: an inspection, or a connection attempted from a container, tells you where the gap is.
Which lessons should you review before starting?
The statement does not say which actions it asks for, and this list does not try to point them out either. It gathers, in the order of the course, the lessons that teach an action useful here. Start by rereading those where your last labs were difficult.
- Run a Docker container and choose what it runs
- Inspect a running container with Docker
- Publish a Docker port without exposing the whole host
- Default Docker network or your own: which to choose?
- Isolating a container from the network: none or an internal network
Take the exam
The lab prepares the machine, gives you the statement, then grades the state in which you leave it. Start it when you have about 30 minutes ahead of you, so that you can work in one go.
After the exam
If you pass the threshold without having published a port on the data service, you can expose an application without exposing its database, on your own, on the points measured. You can move on to the next module. A result under the threshold does not mean that you failed to learn. It shows where the gap is.
The messages of the checks describe the symptom observed, not the action to take. It is up to you to link each failed check to a lesson in the list above, to reread it, then to redo the action yourself. Do not try to memorize an answer.
Key points
- The exam is a measurement. Nothing is explained again, hints cost points and the grade covers the final state of the system.
- The grading ignores the commands you typed. It looks at what is running, what is reachable and what is published.
- You need 75 points to pass, and a port published on the data service fails the exam.
- The diagnosis counts as much as the repair: measure before you act.
- To close a gap, reread the matching lesson, then redo the action.