As a containerization technology, Docker can help us package the application and all the resources it requires into a mirror, making it easier to deploy and manage. Port mapping is a very important function in Docker. Our application can be exposed to the network on the host. This article will introduce how Docker performs port mapping.
1. The concept of port mapping
The application in the Docker container needs to be bound to a port number to listen in order to process network requests in the host, and port mapping is to The port number in the container is mapped to a port number in the host, so that the external network can access the application in the container. The port mapping can be divided into two modes, one is random mode and the other is specified. model.
2. Random mode
In random mode, Docker will automatically select an unoccupied port number on the host and map it to the specified port inside the container. We only need to docker run Port mapping can be performed by adding the -p parameter to the command. The specific command is as follows:
$ docker run -p [宿主机端口]:[容器内部端口] image_name
Among them, the host port can be a random port number. At this time, we can use the command docker ps to view the mapped port number. .
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1abd02665a3 nginx "nginx -g 'daemon of…" 3 hours ago Up 3 hours 0.0.0.0:32768->80/tcp nginx
As you can see, port number 32768 is the host port number randomly mapped by Docker.
3. Specified mode
In specified mode, we can specify a port number on the host to map to the port number inside the container. This is more suitable for deployment in a production environment. , we can specify different port numbers for each container for mapping, so that port numbers can be easily managed and maintained. The specific commands are as follows:
$ docker run -p [宿主机端口]:[容器内部端口] image_name
Among them, the host port can be specified as any available port Number, such as 80, 443, etc.
4. Specification of the internal port of the container
When performing port mapping, we need to specify the port number inside the container. If not specified, Docker will use the port number monitored by the application inside the container. The default port number is mapped. For example, port 80 corresponds to the HTTP service. If we want to map port 80 to port 8080 of the host, we can use the following command to perform port mapping:
$ docker run -p 8080:80 image_name
In this way, we You can use port 8080 in the host to access the HTTP service inside the container.
5. Summary
Port mapping is a very important function in Docker, which can help us expose the applications in the container to the host network, so that it can be easily accessed and Management, we can perform port mapping through random mode or specified mode, and we need to pay attention to the specification of the internal port of the container, so that the port mapping can be configured more flexibly.
The above is the detailed content of How Docker performs port mapping. For more information, please follow other related articles on the PHP Chinese website!