Bird
Raised Fist0
Dockerdevops~5 mins

Defining services in Docker - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a service in Docker Compose?
A service in Docker Compose is a container configuration that defines how a container should run, including the image, ports, volumes, and environment variables.
Click to reveal answer
beginner
Which file is used to define services in Docker Compose?
Services are defined in the docker-compose.yml file using YAML syntax.
Click to reveal answer
beginner
How do you specify the image for a service in Docker Compose?
Use the image key under the service name to specify the Docker image to use, for example: image: nginx:latest.
Click to reveal answer
beginner
What is the purpose of the ports key in a service definition?
The ports key maps container ports to host machine ports, allowing access to the service from outside the container.
Click to reveal answer
beginner
How can you define environment variables for a Docker Compose service?
Use the environment key under the service to list environment variables as key-value pairs.
Click to reveal answer
Where do you define services in Docker Compose?
AIn the docker-compose.yml file
BIn the Dockerfile
CIn the .env file
DIn the docker CLI command
Which key specifies the Docker image for a service?
Aimage
Bbuild
Ccontainer
Dservice
What does the 'ports' key do in a service definition?
ASets environment variables
BSpecifies the network
CDefines volumes
DMaps container ports to host ports
How do you add environment variables to a service?
AUsing the 'env' key
BUsing the 'environment' key
CUsing the 'variables' key
DUsing the 'config' key
Which file format is used for Docker Compose service definitions?
AJSON
BXML
CYAML
DINI
Explain how to define a simple web service in Docker Compose.
Think about the minimum keys needed to run a web server container.
You got /4 concepts.
    Describe the role of environment variables in Docker Compose services and how to set them.
    Consider how environment variables customize container behavior.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of defining services in a Docker Compose file?
      easy
      A. To install software inside containers manually
      B. To write shell scripts for container startup
      C. To group containers with their settings for easy management
      D. To create virtual machines inside Docker

      Solution

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

        Services define how containers run, including images, ports, and environment variables.
      2. Step 2: Recognize the benefit of grouping containers

        Grouping containers with their settings allows easy start, stop, and management of multiple containers together.
      3. Final Answer:

        To group containers with their settings for easy management -> Option C
      4. Quick Check:

        Services group containers = D [OK]
      Hint: Services group containers and settings in one file [OK]
      Common Mistakes:
      • Confusing services with scripts
      • Thinking services create virtual machines
      • Believing services install software manually
      2. Which of the following is the correct way to define a service named web using the image nginx in a Docker Compose YAML file?
      easy
      A. services: web: image: nginx
      B. services: web: image nginx
      C. service: web: image: nginx
      D. services: web: img: nginx

      Solution

      1. Step 1: Check the correct YAML key for services

        The top-level key must be services (plural), not service.
      2. Step 2: Verify the syntax for image definition

        The correct syntax is image: nginx with a colon and proper indentation.
      3. Final Answer:

        services: web: image: nginx -> Option A
      4. Quick Check:

        Correct YAML keys and syntax = B [OK]
      Hint: Use 'services:' plural and 'image:' with colon [OK]
      Common Mistakes:
      • Using 'service' instead of 'services'
      • Missing colon after 'image'
      • Using 'img' instead of 'image'
      3. Given this Docker Compose snippet, what port will be accessible on the host machine?
      services:
        app:
          image: myapp
          ports:
            - "8080:80"
      medium
      A. Port 80 on the host
      B. Port 8080 on the host
      C. Port 80 inside the container only
      D. Port 8080 inside the container only

      Solution

      1. Step 1: Understand port mapping syntax

        The format "host_port:container_port" means host port 8080 maps to container port 80.
      2. Step 2: Identify which port is exposed on the host

        Port 8080 on the host machine will forward traffic to port 80 inside the container.
      3. Final Answer:

        Port 8080 on the host -> Option B
      4. Quick Check:

        Host port is first in mapping = A [OK]
      Hint: Host port is before colon in ports mapping [OK]
      Common Mistakes:
      • Confusing host and container ports
      • Thinking container port is exposed on host
      • Ignoring quotes around ports
      4. Identify the error in this Docker Compose service definition:
      services:
        db:
          image: postgres
          ports:
            - "5432:"
          environment:
            POSTGRES_PASSWORD: example
      medium
      A. Missing container port in ports mapping
      B. Environment variable name is incorrect
      C. Image name should be capitalized
      D. Service name cannot be 'db'

      Solution

      1. Step 1: Check ports syntax

        Ports must be mapped as "host_port:container_port" or just container port. Here, "5432:" is invalid because missing container port after colon.
      2. Step 2: Confirm environment and image correctness

        Environment variable and image name are correct; service name 'db' is valid.
      3. Final Answer:

        Missing container port in ports mapping -> Option A
      4. Quick Check:

        Ports need host:container or container port only = A [OK]
      Hint: Ports need host:container or container port only [OK]
      Common Mistakes:
      • Using only one port number with quotes
      • Assuming environment variable names are wrong
      • Thinking service names have restrictions
      5. You want to define two services, frontend and backend, where frontend depends on backend to start first. Which is the correct way to express this dependency in Docker Compose?
      hard
      A. services: frontend: image: frontend-image backend: image: backend-image depends_on: - frontend
      B. services: backend: image: backend-image depends_on: - frontend frontend: image: frontend-image
      C. services: frontend: image: frontend-image links: - backend backend: image: backend-image
      D. services: frontend: image: frontend-image depends_on: - backend backend: image: backend-image

      Solution

      1. Step 1: Understand 'depends_on' usage

        The depends_on key under a service lists services that must start before it.
      2. Step 2: Identify correct dependency direction

        Since frontend depends on backend, frontend should have depends_on: - backend.
      3. Step 3: Check other options for correctness

        The incorrect options either reverse the dependency direction or use the deprecated links for dependency control.
      4. Final Answer:

        services: frontend: image: frontend-image depends_on: - backend backend: image: backend-image -> Option D
      5. Quick Check:

        depends_on under dependent service = C [OK]
      Hint: Put depends_on under service that waits for others [OK]
      Common Mistakes:
      • Reversing dependency direction
      • Using links instead of depends_on
      • Placing depends_on under wrong service
      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