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!

The core of Docker monitoring is to collect and analyze the operating data of containers, mainly including indicators such as CPU usage, memory usage, network traffic and disk I/O. By using tools such as Prometheus, Grafana and cAdvisor, comprehensive monitoring and performance optimization of containers can be achieved.

DockerSwarm can be used to build scalable and highly available container clusters. 1) Initialize the Swarm cluster using dockerswarminit. 2) Join the Swarm cluster to use dockerswarmjoin--token:. 3) Create a service using dockerservicecreate-namemy-nginx--replicas3nginx. 4) Deploy complex services using dockerstackdeploy-cdocker-compose.ymlmyapp.

How to use Docker and Kubernetes to perform container orchestration of enterprise applications? Implement it through the following steps: Create a Docker image and push it to DockerHub. Create Deployment and Service in Kubernetes to deploy applications. Use Ingress to manage external access. Apply performance optimization and best practices such as multi-stage construction and resource constraints.

Docker FAQs can be diagnosed and solved through the following steps: 1. View container status and logs, 2. Check network configuration, 3. Ensure that the volume mounts correctly. Through these methods, problems in Docker can be quickly located and fixed, improving system stability and performance.

Docker is a must-have skill for DevOps engineers. 1.Docker is an open source containerized platform that achieves isolation and portability by packaging applications and their dependencies into containers. 2. Docker works with namespaces, control groups and federated file systems. 3. Basic usage includes creating, running and managing containers. 4. Advanced usage includes using DockerCompose to manage multi-container applications. 5. Common errors include container failure, port mapping problems, and data persistence problems. Debugging skills include viewing logs, entering containers, and viewing detailed information. 6. Performance optimization and best practices include image optimization, resource constraints, network optimization and best practices for using Dockerfile.

Docker security enhancement methods include: 1. Use the --cap-drop parameter to limit Linux capabilities, 2. Create read-only containers, 3. Set SELinux tags. These strategies protect containers by reducing vulnerability exposure and limiting attacker capabilities.

DockerVolumes ensures that data remains safe when containers are restarted, deleted, or migrated. 1. Create Volume: dockervolumecreatemydata. 2. Run the container and mount Volume: dockerrun-it-vmydata:/app/dataubuntubash. 3. Advanced usage includes data sharing and backup.

Docker provides three main network modes: bridge network, host network and overlay network. 1. The bridge network is suitable for inter-container communication on a single host and is implemented through a virtual bridge. 2. The host network is suitable for scenarios where high-performance networks are required, and the container directly uses the host's network stack. 3. Overlay network is suitable for multi-host DockerSwarm clusters, and cross-host communication is realized through the virtual network layer.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Chinese version
Chinese version, very easy to use