The term “mapped port can only be obtained after the container is started” refers to the process of assigning a port number to a service running inside a container. This port mapping is an essential feature of containerization technologies like Docker, which allow multiple containers to run on a single host machine.
When a container is started, it can expose specific ports that can be accessed from the host machine or other containers. These exposed ports are then mapped to a port on the host machine, allowing external services to interact with the containerized application.
However, determining the actual port number that is mapped to a container can only be done once the container is running. This is because the host machine dynamically assigns an available port and establishes the mapping.
Let’s say we have a Docker container running an HTTP server that listens on port 8080 inside the container. When we start the container, we can specify that port 8080 should be exposed. However, the mapped port on the host machine may be different. For example, Docker might assign port 32768 on the host machine to forward incoming requests to port 8080 inside the container. So, we can only obtain this mapped port number after the container is started and the mapping is established.
This mechanism allows multiple containers to run simultaneously, each with its own set of exposed ports, without port conflicts on the host machine. It also provides flexibility when scaling containerized applications since the mapping can change dynamically as containers start or stop.