Bird
Raised Fist0
Dockerdevops~5 mins

Compose profiles for selective services in Docker - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Compose profile in Docker Compose?
A Compose profile is a way to group services in a Docker Compose file so you can selectively start those services by enabling specific profiles (services without profiles always start too).
Click to reveal answer
beginner
How do you define a profile for a service in a Docker Compose file?
You add a 'profiles' key under the service with a list of profile names. For example:
services:
  web:
    image: nginx
    profiles:
      - frontend
Click to reveal answer
beginner
How do you start Docker Compose with a specific profile?
Use the command: docker compose --profile <profile_name> up to start services in that profile (in addition to services without profiles).
Click to reveal answer
intermediate
What happens if you run 'docker compose up' without specifying any profile?
Docker Compose starts all services that have no profile specified. Services assigned to profiles are not started unless their profile is enabled.
Click to reveal answer
beginner
Why use Compose profiles for selective services?
Profiles help you manage complex projects by starting only the services you need for a specific task, like development, testing, or production, saving resources and time.
Click to reveal answer
How do you specify a profile for a service in a Docker Compose file?
AAdd a 'profiles' key with a list of profile names under the service
BUse 'profile:' with a single profile name under the service
CAdd 'profile' as an environment variable
DProfiles are set only via command line, not in the file
What command starts services in the 'frontend' profile only?
Adocker compose up frontend
Bdocker compose --profile frontend up
Cdocker compose start frontend
Ddocker compose run frontend
If a service has no profile defined, when does it start?
AAlways, regardless of profiles specified
BOnly with the 'default' profile explicitly enabled
CNever, it must have a profile
DOnly when a profile is specified
Why might you use profiles in Docker Compose?
ATo set network configurations
BTo define environment variables
CTo group services for selective startup
DTo build images automatically
What happens if you run 'docker compose up' with no profiles specified?
ANo services start
BAll services start regardless of profiles
COnly services with profiles start
DOnly services without profiles start
Explain how to use Compose profiles to start only selected services in a Docker Compose project.
Think about grouping services and using command line to select them.
You got /4 concepts.
    Describe the benefits of using Compose profiles in managing Docker services.
    Consider how profiles help organize and control service execution.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using profiles in a Docker Compose file?
      easy
      A. To define environment variables for all services
      B. To specify the Docker image version for services
      C. To selectively start specific services based on the active profile
      D. To set network configurations for containers

      Solution

      1. Step 1: Understand the role of profiles in Docker Compose

        Profiles allow you to group services so you can start only those you want by activating a profile.
      2. Step 2: Compare with other options

        Environment variables, image versions, and network settings are configured differently, not via profiles.
      3. Final Answer:

        To selectively start specific services based on the active profile -> Option C
      4. Quick Check:

        Profiles control which services run [OK]
      Hint: Profiles control service startup groups in Compose [OK]
      Common Mistakes:
      • Confusing profiles with environment variables
      • Thinking profiles set image versions
      • Assuming profiles configure networks
      2. Which of the following is the correct syntax to assign a service to a profile named debug in a Docker Compose file?
      easy
      A. profile: [debug]
      B. profiles: [debug]
      C. profiles: debug
      D. profile: debug

      Solution

      1. Step 1: Recall the correct key and format for profiles

        The key is profiles (plural) and it expects a list of profile names.
      2. Step 2: Validate the syntax

        Using YAML list syntax, profiles: [debug] is correct. Other options use singular or wrong types.
      3. Final Answer:

        profiles: [debug] -> Option B
      4. Quick Check:

        Profiles key is plural and uses list syntax [OK]
      Hint: Use plural 'profiles' with a list for service assignment [OK]
      Common Mistakes:
      • Using singular 'profile' instead of 'profiles'
      • Not using list syntax for profiles
      • Assigning profile as a string without brackets
      3. Given this Compose snippet:
      services:
        web:
          image: nginx
        debug:
          image: busybox
          profiles: [debug]
      What happens when you run docker compose up without any profile?
      medium
      A. Only the web service starts
      B. Both web and debug services start
      C. Only the debug service starts
      D. No services start

      Solution

      1. Step 1: Identify which services have profiles

        The debug service is assigned to the profile 'debug', web has no profile.
      2. Step 2: Understand default behavior without profile

        Without specifying a profile, only services without profiles start.
      3. Final Answer:

        Only the web service starts -> Option A
      4. Quick Check:

        Services without profiles start by default [OK]
      Hint: Without profile flag, only services without profiles run [OK]
      Common Mistakes:
      • Assuming all services start by default
      • Thinking profile services start without activation
      • Confusing service names with profile names
      4. You have this Compose file snippet:
      services:
        app:
          image: myapp
          profiles: [prod]
        test:
          image: mytest
          profiles: [test]
      You run docker compose --profile prod up but the app service does not start. What is the likely issue?
      medium
      A. The profile name is misspelled in the command
      B. The app service must not have any profile to start
      C. You must run docker compose up without profiles to start services
      D. The Compose file syntax is invalid

      Solution

      1. Step 1: Check profile names in Compose and command

        The service uses profile 'prod'. If the command misspells it, the service won't start.
      2. Step 2: Understand profile activation

        Only services matching the activated profile start. If the profile name is wrong, no matching service starts.
      3. Final Answer:

        The profile name is misspelled in the command -> Option A
      4. Quick Check:

        Profile names must match exactly [OK]
      Hint: Check exact profile spelling in command and Compose file [OK]
      Common Mistakes:
      • Assuming services without profiles start with any profile
      • Thinking Compose file syntax error causes this
      • Believing profiles are optional for service start
      5. You want to start only the db and cache services using profiles. Your Compose file has:
      services:
        db:
          image: postgres
          profiles: [backend]
        cache:
          image: redis
          profiles: [backend]
        frontend:
          image: nginx
          profiles: [frontend]
      Which command will start only the db and cache services?
      hard
      A. docker compose up
      B. docker compose --profile frontend up
      C. docker compose --profile db cache up
      D. docker compose --profile backend up

      Solution

      1. Step 1: Identify profiles assigned to db and cache

        Both db and cache are under the 'backend' profile.
      2. Step 2: Use the correct command to activate the backend profile

        Running docker compose --profile backend up starts only services in 'backend'.
      3. Final Answer:

        docker compose --profile backend up -> Option D
      4. Quick Check:

        Activate profile matching services to start them [OK]
      Hint: Use --profile with the shared profile name to start grouped services [OK]
      Common Mistakes:
      • Using profile name not assigned to services
      • Running without profile starts no profile services only
      • Trying to list services in command instead of profile
      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