Home >Operation and Maintenance >Docker >Why does docker need port mapping?
Because when the docker container is running, if the port mapping parameters are not specified, the network application services in the container cannot be accessed through the network outside the container, so docker port mapping needs to be set; docker passes The port is bound to the host system's interface, allowing non-local clients to access services running inside the container.
The operating environment of this tutorial: linux7.3 system, docker version 19.03, Dell G3 computer.
Doker is an open source application container engine. To put it simply, it is a container that can package programs and running environments, and publish the environment and programs together. When you need to publish a program, you can use doker to publish the running environment together. After other people get your program, they can run it directly, avoiding the embarrassing situation of compiling once and debugging everywhere.
To put it more bluntly, the emergence of doker is mainly to solve the problem of why it is normal on my machine but not normal on your machine. Docker containers have four states: running, paused, restarted, and exited.
Why do we need to do doker port mapping?
When the docker container is running, if the port mapping parameters are not specified (the port mapping between the host machine and the virtual machine is not configured), the container cannot be accessed through the network from outside the container. Network applications and services (external programs cannot access the virtual machine because there is no port). In order to solve this problem, you need to set up doker port mapping.
Docker binds the interface of the host system through the port, allowing non-local clients to access services running inside the container. In order to facilitate communication between containers, docker provides this connection mechanism.
Two common port mapping methods of docker
Automatic mapping of ports
-P使用时需要指定--expose选项,指定需要对外提供服务的端口 $ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
Use docker run -P to automatically bind Define all container ports that provide external services. The mapped ports will be automatically selected from the unused port pool (49000..49900). You can determine the specific binding information through docker ps, docker inspect or docker port.
Bind the port to the specified interface
Basic syntax
$ sudo docker run -p [([:[host_port]])|():] [/ udp]
By default, all network interfaces will be monitored if the binding IP is not specified.
Recommended learning: "docker video tutorial"
The above is the detailed content of Why does docker need port mapping?. For more information, please follow other related articles on the PHP Chinese website!