Bird
Raised Fist0
Dockerdevops

Capabilities and privilege control in Docker - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of Linux capabilities in Docker containers?
Linux capabilities allow fine-grained control over the privileges a container has, limiting what it can do to improve security.
Click to reveal answer
beginner
How do you drop all Linux capabilities from a Docker container?
Use the flag --cap-drop=ALL when running the container to remove all extra privileges.
Click to reveal answer
intermediate
What does running a Docker container with --privileged do?
It gives the container almost all the host's capabilities, allowing it to perform many sensitive operations, which can be risky.
Click to reveal answer
beginner
Name one reason to avoid using --privileged mode in Docker containers.
Because it grants too many permissions, it can lead to security risks if the container is compromised.
Click to reveal answer
beginner
How can you add a specific capability to a Docker container?
Use the flag --cap-add=CAP_NAME when running the container, replacing CAP_NAME with the capability you want to add.
Click to reveal answer
Which Docker flag removes all Linux capabilities from a container?
A--cap-drop=ALL
B--privileged
C--cap-add=ALL
D--no-capabilities
What effect does the --privileged flag have on a Docker container?
ARemoves all capabilities
BAdds only network capabilities
CGrants almost all host capabilities
DRuns the container as root user only
Why should you avoid using --privileged unless necessary?
AIt slows down the container
BIt increases security risks
CIt disables networking
DIt prevents container startup
How do you add the capability to allow raw socket access to a Docker container?
A--cap-add=NET_RAW
B--cap-drop=NET_RAW
C--privileged
D--net=host
What is the default privilege level of Docker containers regarding capabilities?
AContainers run with all capabilities
BContainers run with no capabilities
CContainers run with privileged mode enabled
DContainers run with a limited set of capabilities
Explain how Linux capabilities help improve Docker container security.
Think about how giving fewer permissions can protect the host.
You got /3 concepts.
    Describe the risks and benefits of using the --privileged flag in Docker.
    Consider what happens when a container can do almost anything on the host.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the --cap-drop option do when running a Docker container?
      easy
      A. Removes specific Linux capabilities from the container
      B. Adds new capabilities to the container
      C. Runs the container with full root privileges
      D. Limits the container's CPU usage

      Solution

      1. Step 1: Understand Docker capabilities

        Capabilities are Linux kernel permissions that control what a container can do on the host.
      2. Step 2: Role of --cap-drop

        This option removes specific capabilities from the container, reducing its privileges.
      3. Final Answer:

        Removes specific Linux capabilities from the container -> Option A
      4. Quick Check:

        --cap-drop means remove capabilities [OK]
      Hint: Drop caps to reduce container privileges quickly [OK]
      Common Mistakes:
      • Confusing --cap-drop with --cap-add
      • Thinking it controls CPU or memory
      • Assuming it grants root access
      2. Which of the following is the correct syntax to add the NET_ADMIN capability to a Docker container?
      easy
      A. docker run --cap NET_ADMIN myimage
      B. docker run --add-cap NET_ADMIN myimage
      C. docker run --capability-add NET_ADMIN myimage
      D. docker run --cap-add NET_ADMIN myimage

      Solution

      1. Step 1: Recall Docker capability syntax

        The correct flag to add capabilities is --cap-add.
      2. Step 2: Match the correct command

        docker run --cap-add NET_ADMIN myimage uses --cap-add NET_ADMIN, which is the exact syntax Docker expects.
      3. Final Answer:

        docker run --cap-add NET_ADMIN myimage -> Option D
      4. Quick Check:

        Use --cap-add to add capabilities [OK]
      Hint: Remember: add = --cap-add, drop = --cap-drop [OK]
      Common Mistakes:
      • Using incorrect flags like --add-cap
      • Omitting the capability name
      • Using --cap or --capability-add which are invalid
      3. What will be the effect of running this command?
      docker run --cap-drop ALL --cap-add CHOWN alpine id
      medium
      A. The container has only the CHOWN capability enabled
      B. The container has all capabilities except CHOWN
      C. The container runs with full root privileges
      D. The container will fail to start due to conflicting options

      Solution

      1. Step 1: Analyze --cap-drop ALL

        This removes all Linux capabilities from the container, making it very restricted.
      2. Step 2: Analyze --cap-add CHOWN

        This adds back the CHOWN capability, allowing the container to change file ownership.
      3. Final Answer:

        The container has only the CHOWN capability enabled -> Option A
      4. Quick Check:

        Drop all then add one = only that one capability [OK]
      Hint: Drop ALL then add one = only that one capability [OK]
      Common Mistakes:
      • Thinking --cap-add adds on top without drop effect
      • Assuming container runs with full privileges
      • Believing conflicting options cause failure
      4. You want to run a container with the SYS_TIME capability but accidentally use this command:
      docker run --cap-drop SYS_TIME myimage

      What is the problem and how to fix it?
      medium
      A. Problem: Syntax error in command. Fix: Remove --cap-drop
      B. Problem: SYS_TIME is dropped, so container can't change time. Fix: Use --cap-add SYS_TIME
      C. Problem: Container runs with full privileges. Fix: Add --cap-drop ALL
      D. Problem: SYS_TIME is not a valid capability. Fix: Use a valid capability name

      Solution

      1. Step 1: Understand the effect of --cap-drop SYS_TIME

        This removes the SYS_TIME capability, preventing the container from changing system time.
      2. Step 2: Correct the command to add the capability

        To allow changing time, use --cap-add SYS_TIME instead of dropping it.
      3. Final Answer:

        Problem: SYS_TIME is dropped, so container can't change time. Fix: Use --cap-add SYS_TIME -> Option B
      4. Quick Check:

        Drop removes, add grants capabilities [OK]
      Hint: Add needed caps, don't drop them by mistake [OK]
      Common Mistakes:
      • Confusing --cap-drop with --cap-add
      • Assuming dropping caps grants them
      • Thinking SYS_TIME is invalid capability
      5. You want to run a container that can modify network settings but nothing else. Which command best limits privileges to only what is needed?
      hard
      A. docker run --cap-drop NET_ADMIN myimage
      B. docker run --privileged myimage
      C. docker run --cap-drop ALL --cap-add NET_ADMIN myimage
      D. docker run --cap-add ALL myimage

      Solution

      1. Step 1: Understand the goal

        The container should only have network admin rights, no other privileges.
      2. Step 2: Evaluate options

        docker run --cap-drop ALL --cap-add NET_ADMIN myimage drops all capabilities then adds only NET_ADMIN, perfectly limiting privileges.
      3. Step 3: Why others are wrong

        --privileged grants full privileges, --cap-add ALL adds all capabilities (too much), --cap-drop NET_ADMIN removes NET_ADMIN (opposite of goal).
      4. Final Answer:

        docker run --cap-drop ALL --cap-add NET_ADMIN myimage -> Option C
      5. Quick Check:

        Drop all then add needed cap = minimal privileges [OK]
      Hint: Drop all caps, then add only needed ones [OK]
      Common Mistakes:
      • Using --privileged which grants too many rights
      • Adding all capabilities instead of limiting
      • Dropping the needed capability by mistake
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard