📖 Scenario: You are managing a Docker container that runs a simple web server. You want to make sure the container restarts automatically if it stops unexpectedly, so your service stays available without manual intervention.
🎯 Goal: Learn how to set Docker container restart policies to control automatic restarts.
📋 What You'll Learn
Create a Docker container running the nginx image
Add a restart policy configuration
Use the 'always' restart policy
Verify the container restart policy is set correctly
💡 Why This Matters
🌍 Real World
Restart policies help keep important services running automatically without manual restarts, improving reliability.
💼 Career
Understanding Docker restart policies is essential for DevOps roles managing containerized applications in production.
Progress0 / 4 steps
1
Create a Docker container named mynginx using the nginx image
Run the command to create and start a Docker container named mynginx using the nginx image without any restart policy.
Docker
Hint
Use docker run -d --name mynginx nginx to start the container in detached mode.
2
Add a restart policy variable called restart_policy with the value always
Define a variable called restart_policy and set it to the string always to represent the Docker restart policy you want to use.
Docker
Hint
Write restart_policy='always' to set the restart policy variable.
3
Run the Docker container mynginx with the restart policy always
Use the docker run command with the --restart option set to the restart_policy variable value to start the container named mynginx using the nginx image.
Docker
Hint
Use docker run -d --name mynginx --restart $restart_policy nginx to apply the restart policy.
4
Verify the restart policy of the mynginx container
Run the command docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' mynginx to display the restart policy of the container named mynginx.
Docker
Hint
The output should be always indicating the restart policy is set correctly.
Practice
(1/5)
1. What does the --restart=always policy do when used with docker run?
easy
A. It restarts the container only if it exits with an error.
B. It never restarts the container automatically.
C. It restarts the container automatically whenever it stops, no matter the reason.
D. It restarts the container only if manually triggered.
Solution
Step 1: Understand the restart policy options
The --restart flag controls when Docker restarts a container automatically.
Step 2: Analyze the always policy
The always policy means Docker restarts the container whenever it stops, regardless of exit status or manual stop.
Final Answer:
It restarts the container automatically whenever it stops, no matter the reason. -> Option C
Quick Check:
--restart=always = restart always [OK]
Hint: Always means restart no matter what, even manual stops [OK]
Common Mistakes:
Confusing 'always' with 'on-failure'
Thinking 'always' ignores manual stops
Mixing 'no' restart with 'always'
2. Which of the following is the correct syntax to run a container with a restart policy that restarts only on failure?
easy
A. docker run --restart=on-failure:5 myimage
B. docker run --restart=always myimage
C. docker run --restart unless-stopped myimage
D. docker run --restart=no myimage
Solution
Step 1: Recall the syntax for restart policies
The correct syntax uses --restart=policy[:max-retries] with an equals sign and optional retry count.
Step 2: Identify the option that matches restart on failure with max retries
on-failure:5 means restart only if the container fails, up to 5 times.
Final Answer:
docker run --restart=on-failure:5 myimage -> Option A
Quick Check:
Correct syntax uses equals sign and policy [OK]
Hint: Use --restart=policy with equals sign, e.g. --restart=on-failure [OK]
Common Mistakes:
Missing equals sign (=) after --restart
Using wrong policy names or formats
Confusing 'always' with 'on-failure'
3. What will happen if you run this command?
docker run --restart=unless-stopped myapp
medium
A. The container restarts unless you manually stop it.
B. The container restarts always, even if stopped manually.
C. The container never restarts automatically.
D. The container restarts only if it fails, not if stopped manually.
Solution
Step 1: Understand the 'unless-stopped' policy
This policy restarts the container automatically except when you stop it manually.
Step 2: Apply the policy to the command
Since the command uses --restart=unless-stopped, the container will restart on failures or Docker daemon restarts, but not if manually stopped.
Final Answer:
The container restarts unless you manually stop it. -> Option A
Quick Check:
unless-stopped means restart except manual stop [OK]
Hint: 'unless-stopped' means restart except manual stop [OK]
Common Mistakes:
Thinking it restarts always even after manual stop
Confusing 'unless-stopped' with 'on-failure'
Assuming no restart happens
4. You tried to run a container with this command:
docker run --restart always:3 myimage
Why does it fail?
medium
A. The container name is missing.
B. The image name is invalid.
C. The '--restart' flag is misspelled.
D. The 'always' policy does not accept a retry count.
Solution
Step 1: Check the restart policy syntax
The always policy does not support a retry count suffix like ':3'. Only on-failure accepts that.
Step 2: Identify the cause of failure
Using always:3 is invalid syntax, so Docker rejects the command.
Final Answer:
The 'always' policy does not accept a retry count. -> Option D
Quick Check:
always policy has no retry count [OK]
Hint: 'always' policy never uses retry count suffix [OK]
Common Mistakes:
Adding retry count to 'always' policy
Assuming all policies accept retry counts
Ignoring error messages from Docker
5. You want a container to restart automatically only if it crashes, but not if you stop it manually. Which restart policy and command should you use?
hard
A. docker run --restart=always mycontainer
B. docker run --restart=on-failure mycontainer
C. docker run --restart=unless-stopped mycontainer
D. docker run --restart=no mycontainer
Solution
Step 1: Understand the requirement
The container should restart only if it crashes (fails), but not if stopped manually.
Step 2: Match the restart policy
on-failure restarts the container only when it exits with an error, ignoring manual stops.
Step 3: Verify the command
The command docker run --restart=on-failure mycontainer correctly applies this policy.
Final Answer:
docker run --restart=on-failure mycontainer -> Option B
Quick Check:
on-failure = restart only on crash [OK]
Hint: Use 'on-failure' to restart only on crashes, not manual stops [OK]
Common Mistakes:
Using 'always' which restarts even after manual stop
Using 'unless-stopped' which restarts after manual stop
Choosing 'no' which disables restart
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.