Bird
Raised Fist0
Dockerdevops~5 mins

Port mapping in Compose in Docker - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is port mapping in Docker Compose?
Port mapping connects a port on your computer (host) to a port inside a Docker container, allowing you to access container services from outside.
Click to reveal answer
beginner
How do you define port mapping in a docker-compose.yml file?
Use the ports key under a service with the format host_port:container_port. For example:
ports:
  - "8080:80"
maps host port 8080 to container port 80.
Click to reveal answer
beginner
Why is port mapping important when running containers?
Containers run isolated with their own network. Port mapping lets you reach container apps from your computer or other devices by linking container ports to host ports.
Click to reveal answer
intermediate
What happens if you map the same host port to multiple containers in Compose?
You get a conflict error because only one container can use a host port at a time. You must use different host ports for each container.
Click to reveal answer
intermediate
How do you expose a container port without mapping it to a host port in Compose?
Use the expose key instead of ports. This makes the port accessible to linked containers but not to the host machine.
Click to reveal answer
In docker-compose.yml, how do you map host port 5000 to container port 80?
Aports: - "80:5000"
Bexpose: - "5000:80"
Cports: - "5000:80"
Dexpose: - "80:5000"
What does the expose key do in docker-compose?
AMakes container ports accessible only to linked containers
BMaps container ports to host ports
CBlocks all container ports
DMaps host ports to container ports
What error occurs if two services map the same host port in Compose?
ANo error, ports are shared
BPort conflict error
CContainer crash without error
DDocker ignores the second mapping
Which port is accessible from your computer when you map 8080:80?
APort 80 inside the container only
BPort 8080 inside the container
CPort 80 on your computer
DPort 8080 on your computer
If you want a container port accessible only to other containers, which should you use?
Aexpose
Bnetworks
Cvolumes
Dports
Explain how port mapping works in Docker Compose and why it is useful.
Think about how your computer talks to apps inside containers.
You got /4 concepts.
    Describe the difference between the ports and expose keys in a Compose file.
    One lets outside world in, the other only shares inside Docker.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the ports section in a Docker Compose file do?
      easy
      A. It defines the container's CPU and memory limits.
      B. It sets environment variables inside the container.
      C. It specifies the container's restart policy.
      D. It maps ports from the host machine to the container ports.

      Solution

      1. Step 1: Understand the role of ports in Compose

        The ports section connects a port on your computer (host) to a port inside the container.
      2. Step 2: Identify what ports does not do

        It does not set environment variables, resource limits, or restart policies.
      3. Final Answer:

        It maps ports from the host machine to the container ports. -> Option D
      4. Quick Check:

        Port mapping = connecting host to container ports [OK]
      Hint: Ports section maps host ports to container ports [OK]
      Common Mistakes:
      • Confusing ports with environment variables
      • Thinking ports set resource limits
      • Mixing ports with restart policies
      2. Which of the following is the correct syntax to map port 8080 on the host to port 80 in a Docker Compose service?
      easy
      A. ports: - "8080:80"
      B. ports: - "80"
      C. ports: - "8080"
      D. ports: - "80:8080"

      Solution

      1. Step 1: Understand port mapping format

        The format is host_port:container_port. To map host 8080 to container 80, write "8080:80".
      2. Step 2: Check each option

        ports: - "80:8080" reverses ports, mapping host 80 to container 8080, which is incorrect. Options B and C specify only one port, which publishes the container port to a randomly assigned host port, not specific host 8080.
      3. Final Answer:

        ports: - "8080:80" -> Option A
      4. Quick Check:

        Host port first, container port second [OK]
      Hint: Remember format: host_port:container_port [OK]
      Common Mistakes:
      • Reversing host and container ports
      • Using single port without mapping
      • Incorrect YAML indentation
      3. Given this Compose snippet:
      services:
        web:
          image: nginx
          ports:
            - "5000:80"
      What happens when you open http://localhost:5000 in your browser?
      medium
      A. You get a connection refused error because port 80 is not exposed.
      B. You access the Nginx server running inside the container on port 80.
      C. You access port 5000 inside the container, which is not running any service.
      D. The browser will show the Docker Compose file content.

      Solution

      1. Step 1: Understand port mapping in the snippet

        Port 5000 on the host is mapped to port 80 inside the container where Nginx listens.
      2. Step 2: Explain browser behavior

        Opening http://localhost:5000 sends requests to container's port 80, so you reach the Nginx server.
      3. Final Answer:

        You access the Nginx server running inside the container on port 80. -> Option B
      4. Quick Check:

        Host port 5000 maps to container port 80 [OK]
      Hint: Host port connects to container port service [OK]
      Common Mistakes:
      • Thinking port 80 is not exposed
      • Confusing host and container ports
      • Expecting file content instead of service
      4. You wrote this Compose ports mapping:
      ports:
        - "80:8080"
      But your app inside the container listens on port 8080. Why can't you access it via http://localhost:80?
      medium
      A. The container port 8080 is not exposed correctly to the host port 80.
      B. The ports are reversed; host port should be 8080 and container port 80.
      C. The app inside the container is not running on port 8080.
      D. The Compose file syntax is invalid.

      Solution

      1. Step 1: Analyze the port mapping

        Mapping "80:8080" means host port 80 connects to container port 8080.
      2. Step 2: Identify the problem

        If access fails, likely the container app is not listening on port 8080 or firewall blocks host port 80. The mapping syntax is correct.
      3. Final Answer:

        The app inside the container is not running on port 8080. -> Option C
      4. Quick Check:

        Check app listens on container port [OK]
      Hint: Check app listens on container port, not just mapping [OK]
      Common Mistakes:
      • Assuming ports reversed when they are correct
      • Ignoring app's actual listening port
      • Blaming syntax without checking app
      5. You want to run two services in Compose: a web app on container port 3000 and an API on container port 5000. You want to access them on host ports 3000 and 5000 respectively. Which Compose ports section is correct?
      hard
      A. web: ports: - "3000:3000" api: ports: - "5000:5000"
      B. web: ports: - "3000:80" api: ports: - "5000:80"
      C. web: ports: - "80:3000" api: ports: - "80:5000"
      D. web: ports: - "3000" api: ports: - "5000"

      Solution

      1. Step 1: Match host and container ports

        To access web on host 3000 and container 3000, map "3000:3000". Similarly for API, map "5000:5000".
      2. Step 2: Check other options

        web: ports: - "3000:80" api: ports: - "5000:80" maps container ports incorrectly to 80. web: ports: - "80:3000" api: ports: - "80:5000" reverses ports. web: ports: - "3000" api: ports: - "5000" uses short syntax without mapping, which assigns random host ports.
      3. Final Answer:

        web: ports: - "3000:3000" api: ports: - "5000:5000" -> Option A
      4. Quick Check:

        Host and container ports must match for access [OK]
      Hint: Map host port to same container port for easy access [OK]
      Common Mistakes:
      • Reversing host and container ports
      • Using single port without mapping
      • Mapping both services to same container port
      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