Docker ist eine leichte Containerisierungstechnologie, die in Softwareentwicklungs-, Test- und Produktionsumgebungen weit verbreitet ist. Mit Docker-Containern können Anwendungen und ihre Abhängigkeiten in einen tragbaren Container gepackt werden, um sie in verschiedenen Umgebungen einfach verwenden zu können. Wenn wir jedoch Docker-Container verwenden, müssen wir möglicherweise auf den Server im Docker-Container zugreifen. In diesem Artikel erfahren Sie, wie Sie auf den Server im Docker zugreifen.
1. Verwenden Sie den Docker-Exec-Befehl
Docker stellt offiziell einen Docker-Exec-Befehl zur Verfügung, der Befehle innerhalb eines laufenden Containers ausführen kann. Die allgemeine Syntax dieses Befehls lautet wie folgt:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
其中,OPTIONS包括一系列参数,如-t(分配伪终端)、-i(保持STDIN打开)等等。CONTAINER是要执行命令的容器名称或ID,COMMAND是要执行的命令,ARG是命令的参数。
假设我们要在一个名为mycontainer的容器内部访问一个运行在80端口上的服务器,可以按照以下步骤进行:
docker exec -it mycontainer /bin/bash
curl http://localhost:80
以上命令中,-it参数用于为容器分配一个交互式终端,/bin/bash是要运行的shell命令。如果容器内部已经安装了curl客户端,我们就可以使用它访问服务器。
二、使用docker port命令
除了使用docker exec命令,我们还可以通过docker port命令来查看Docker容器内部的端口映射。该命令的一般语法如下:
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
其中,PRIVATE_PORT是要映射的端口,PROTO是映射协议,如TCP或UDP等等。如果不指定PROTO,则默认为TCP。
假设我们要访问一个名为mycontainer的容器内部的80端口,可以按照以下步骤进行:
docker port mycontainer 80
该命令将返回一个字符串,形如:
0.0.0.0:32789
其中,32789就是映射到mycontainer容器内部的80端口。
curl http://localhost:32789
以上命令中,localhost是主机名,32789是刚才从docker port命令中获取的端口号。
三、使用docker network命令
如果Docker容器运行在自己的网络中,我们就可以通过docker network命令将容器连接到主机或其他容器的网络。该命令的一般语法如下:
docker network connect [OPTIONS] NETWORK CONTAINER
其中,OPTIONS包括一系列参数,如--alias(为容器设置别名)、--ip(为容器设置IP地址)等等。NETWORK是要连接的网络名称或ID,CONTAINER是要连接到该网络的容器名称或ID。
假设我们要将一个名为mycontainer的容器连接到默认的bridge网络,并让其具有一个名为webserver的别名,可以按照以下步骤进行:
docker network connect --alias webserver bridge mycontainer
curl http://webserver
docker exec -it mycontainer /bin/bash
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
🎜🎜Wobei PRIVATE_PORT der zuzuordnende Port ist, PROTO das Zuordnungsprotokoll, z. B. TCP oder UDP usw. Wenn PROTO nicht angegeben ist, ist der Standardwert TCP. 🎜🎜Angenommen, wir möchten auf Port 80 in einem Container namens mycontainer zugreifen, können Sie die folgenden Schritte ausführen: 🎜docker port mycontainer 80
🎜🎜Dieser Befehl gibt eine Zeichenfolge in der Form zurück: 🎜🎜0.0.0.0:32789
🎜🎜Unter diesen ist 32789 zugeordnet zum mycontainer-Container Interner Port 80. 🎜curl http://localhost:32789
🎜 🎜 Im obigen Befehl ist localhost der Hostname und 32789 die Portnummer, die gerade vom Docker-Port-Befehl erhalten wurde. 🎜🎜3. Verwenden Sie den Docker-Netzwerkbefehl🎜🎜Wenn der Docker-Container in seinem eigenen Netzwerk läuft, können wir den Docker-Netzwerkbefehl verwenden, um den Container mit dem Netzwerk des Hosts oder anderer Container zu verbinden. Die allgemeine Syntax dieses Befehls lautet wie folgt: 🎜🎜docker network connect [OPTIONS] NETWORK CONTAINER
🎜🎜 Darunter enthält OPTIONS eine Reihe von Parametern, wie zum Beispiel --alias (einen Alias für festlegen). Container), --ip (für die Containereinstellungen, IP-Adresse) und so weiter. NETWORK ist der Netzwerkname oder die ID, zu dem eine Verbindung hergestellt werden soll, und CONTAINER ist der Containername oder die ID, zu dem eine Verbindung hergestellt werden soll. 🎜🎜Angenommen, wir möchten einen Container namens mycontainer mit dem Standard-Bridge-Netzwerk verbinden und ihm einen Alias namens webserver zuweisen. Sie können die folgenden Schritte ausführen: 🎜docker network connect --alias webserver bridge mycontainer
🎜curl http://webserver
🎜🎜Im obigen Befehl ist Webserver der Alias, den wir für den Container festgelegt haben, auf den direkt vom Host aus zugegriffen werden kann. 🎜🎜Zusammenfassung🎜🎜Der Zugriff auf den internen Server eines Docker-Containers ist ein wichtiges Thema bei der Verwendung der Docker-Technologie. In diesem Artikel werden drei Methoden vorgestellt, um dieses Ziel zu erreichen. Die Verwendung des Befehls „docker exec“ zum Ausführen von Befehlen innerhalb des Containers ist die einfachste Möglichkeit. Die Anzeige der Portzuordnung über den Befehl „docker port“ ist ebenfalls eine praktische Methode, und die Verwendung des Befehls „docker network“ zum Herstellen einer Verbindung mit dem Netzwerk ermöglicht einen flexibleren Zugriff auf den Server im Inneren Der Behälter. In tatsächlichen Anwendungen können wir je nach Bedarf unterschiedliche Methoden auswählen, um bequem und schnell auf den Server im Docker-Container zuzugreifen. 🎜Das obige ist der detaillierte Inhalt vonSo greifen Sie in Docker auf den Server zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!