So ordnen Sie Ports in Docker-Containern zu

PHPz
Freigeben: 2023-04-18 15:53:15
Original
9517 Leute haben es durchsucht

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.

  1. Portzuordnung für Docker-Container

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 >8000Port: docker run命令来启动一个容器,并指定端口映射参数。例如,假设在容器内运行的是一个Web服务,监听端口为8080,我们可以使用下面的命令将容器内的8080端口映射到主机的8000端口:

docker run -p 8000:8080 my-web-service
Nach dem Login kopieren

这个命令的参数-p 8000:8080表示将容器内的8080端口映射到主机的8000端口。最后一个参数my-web-service是指定要运行的Docker镜像。

  1. 多个端口的映射

如果容器内运行的服务需要暴露多个端口,可以通过多次添加-p参数进行映射。例如,假设在容器内运行的服务需要同时监听80808081两个端口,我们可以使用下面的命令将这两个端口映射到主机上的不同端口:

docker run -p 8000:8080 -p 8001:8081 my-web-service
Nach dem Login kopieren

这个命令的参数-p 8000:8080表示将容器内的8080端口映射到主机的8000端口,参数-p 8001:8081表示将容器内的8081端口映射到主机的8001端口。

  1. 绑定到本地IP

默认情况下,Docker容器映射的端口是绑定到主机的所有网卡接口上。如果要指定映射到某个特定的IP地址上,可以通过-p参数的格式:

docker run -p IP:HOST_PORT:CONTAINER_PORT my-web-service
Nach dem Login kopieren

其中,IP是指要映射的本地IP地址,HOST_PORT是主机上的端口号,CONTAINER_PORT是容器内服务实际监听的端口号。

  1. UDP端口的映射

与TCP端口不同,UDP端口需要使用-p参数的格式进行映射。例如,可以通过下面的命令将容器内的UDP端口8080映射到主机的UDP端口8000

docker run -p 8000:8080/udp my-udp-service
Nach dem Login kopieren
  1. 随机端口映射

在某些情况下,如果没有必要将容器内的端口映射到主机的固定端口上,可以使用-P参数来指定随机端口映射。例如,可以通过下面的命令启动并自动映射服务的端口:

docker run -P my-web-service
Nach dem Login kopieren

在这个命令中,参数-P表示将容器内的所有端口自动映射到主机上的随机端口。Docker会随机选择一个未被占用的主机端口并将容器内服务的端口映射到它上面。

  1. 查看映射端口

可以使用docker ps

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
Nach dem Login kopieren
Der Parameter dieses Befehls -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.

    Mehrfache Portzuordnung

    🎜Wenn der im Container ausgeführte Dienst mehrere Ports verfügbar machen muss, können Sie ihn zuordnen, indem Sie den Parameter -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 . 🎜
      🎜An lokale IP binden🎜🎜🎜Standardmäßig sind die vom Docker-Container zugeordneten Ports an alle Netzwerkkartenschnittstellen des Hosts gebunden. Wenn Sie die Zuordnung zu einer bestimmten IP-Adresse angeben möchten, können Sie das Parameterformat -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. 🎜
        🎜UDP-Portzuordnung🎜🎜🎜Im Gegensatz zu TCP-Ports müssen UDP-Ports mithilfe des Parameterformats -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
          🎜Zufällige Portzuordnung 🎜🎜🎜Wenn es in einigen Fällen nicht notwendig ist, den Port im Container dem festen Port des Hosts zuzuordnen, können Sie den Parameter -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. 🎜
            🎜Zugeordnete Ports anzeigen🎜🎜🎜Sie können den Befehl 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage