Docker ist eine Open-Source-Anwendungscontainer-Engine, die es Entwicklern ermöglicht, mit diesem hervorragenden Tool jede Anwendung schnell zu verpacken, zu verteilen und auszuführen, sei es lokal, in der Cloud oder auf einem mobilen Gerät. Das größte Merkmal von Docker besteht darin, dass laufende Container schnell auf verschiedenen Hosts bereitgestellt werden können und die Konsistenz der Umgebung gewahrt bleibt. Aufgrund der hervorragenden Leistung und Benutzerfreundlichkeit von Docker wird es häufig in Cloud Computing, DevOps, Microservices und anderen Bereichen eingesetzt. In diesem Artikel wird die Portzuordnung für Docker-Container vorgestellt.
Jeder Dienst in einem Docker-Container muss eine Portnummer belegen. Wenn der im Container ausgeführte Dienst mit einem externen System kommunizieren muss, muss diese Portnummer einem Port auf dem Host zugeordnet werden. Dieser Vorgang kann als Port-Mapping bezeichnet werden.
In Docker können Sie einen Container über den Befehl docker run
starten und die Portzuordnungsparameter angeben. Nehmen wir beispielsweise an, dass ein Webdienst im Container ausgeführt wird und der Überwachungsport 8080
ist, können wir den folgenden Befehl verwenden, um den Port 8080
im Container dem zuzuordnen Hosts >8000
Port: docker run
命令来启动一个容器,并指定端口映射参数。例如,假设在容器内运行的是一个Web服务,监听端口为8080
,我们可以使用下面的命令将容器内的8080
端口映射到主机的8000
端口:
docker run -p 8000:8080 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口。最后一个参数my-web-service
是指定要运行的Docker镜像。
如果容器内运行的服务需要暴露多个端口,可以通过多次添加-p
参数进行映射。例如,假设在容器内运行的服务需要同时监听8080
和8081
两个端口,我们可以使用下面的命令将这两个端口映射到主机上的不同端口:
docker run -p 8000:8080 -p 8001:8081 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口,参数-p 8001:8081
表示将容器内的8081
端口映射到主机的8001
端口。
默认情况下,Docker容器映射的端口是绑定到主机的所有网卡接口上。如果要指定映射到某个特定的IP地址上,可以通过-p
参数的格式:
docker run -p IP:HOST_PORT:CONTAINER_PORT my-web-service
其中,IP
是指要映射的本地IP地址,HOST_PORT
是主机上的端口号,CONTAINER_PORT
是容器内服务实际监听的端口号。
与TCP端口不同,UDP端口需要使用-p
参数的格式进行映射。例如,可以通过下面的命令将容器内的UDP端口8080
映射到主机的UDP端口8000
:
docker run -p 8000:8080/udp my-udp-service
在某些情况下,如果没有必要将容器内的端口映射到主机的固定端口上,可以使用-P
参数来指定随机端口映射。例如,可以通过下面的命令启动并自动映射服务的端口:
docker run -P my-web-service
在这个命令中,参数-P
表示将容器内的所有端口自动映射到主机上的随机端口。Docker会随机选择一个未被占用的主机端口并将容器内服务的端口映射到它上面。
可以使用docker ps
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
-p 8000:8080
bedeutet, den 8080
-Port im Container dem zuzuordnen 8000
-Port des Hosts. Der letzte Parameter my-web-service
gibt das auszuführende Docker-Image an.
-p
mehrmals hinzufügen. Angenommen, der im Container ausgeführte Dienst muss beispielsweise zwei Ports 8080
und 8081
gleichzeitig abhören, können wir den folgenden Befehl verwenden, um diese beiden Ports zuzuordnen zu verschiedenen Ports auf dem Host. Port: 🎜rrreee🎜Der Parameter dieses Befehls -p 8000:8080
bedeutet, den 8080
-Port im Container dem des Hosts zuzuordnen >8000
-Port. Parameter -p 8001:8081
bedeutet, den 8081
-Port im Container dem 8001
-Port des Hosts zuzuordnen . 🎜-p
verwenden: 🎜rrreee🎜wobei sich IP
auf die zuzuordnende lokale IP-Adresse bezieht , HOST_PORT
ist die Portnummer auf dem Host und CONTAINER_PORT
ist die Portnummer, die der Dienst im Container tatsächlich abhört. 🎜-p
zugeordnet werden. Sie können beispielsweise den UDP-Port 8080
im Container mit dem folgenden Befehl dem UDP-Port 8000
des Hosts zuordnen: 🎜rrreee-P
verwenden, um eine zufällige Portzuordnung anzugeben . Sie können beispielsweise den Port des Dienstes mit dem folgenden Befehl starten und automatisch zuordnen: 🎜rrreee🎜 In diesem Befehl bedeutet der Parameter -P
, dass alle Ports im Container automatisch zufälligen Ports zugeordnet werden der Gastgeber. Docker wählt zufällig einen nicht belegten Host-Port aus und ordnet ihm den Port des Dienstes im Container zu. 🎜docker ps
verwenden, um laufende Container und ihre zugeordneten Ports anzuzeigen. Sie können beispielsweise den folgenden Befehl verwenden, um alle laufenden Container und ihre zugeordneten Ports aufzulisten: 🎜rrreee🎜 Dieser Befehl zeigt die ID, den Namen und die zugeordnete Portnummer jedes Containers an. 🎜🎜Die Docker-Portzuordnung dient dazu, eine Netzwerkschnittstelle zwischen dem Container und dem Host für die bidirektionale Datenübertragung zu erstellen. Bei der Konfiguration der Portzuordnung müssen Sie auf Netzwerksicherheitsprobleme und Portkonflikte achten, um unnötige Probleme zu vermeiden. Ich hoffe, dass dieser Artikel den Lesern helfen kann, die Portzuordnung und Netzwerkkonfiguration von Docker zu verstehen. 🎜Das obige ist der detaillierte Inhalt vonSo ordnen Sie Ports in Docker-Containern zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!