Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So greifen Sie in Docker auf den Server zu

So greifen Sie in Docker auf den Server zu

PHPz
PHPzOriginal
2023-04-10 14:19:281106Durchsuche

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端口上的服务器,可以按照以下步骤进行:

  1. 使用docker exec命令进入容器:

docker exec -it mycontainer /bin/bash

  1. 在容器内部执行命令访问服务器:

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端口,可以按照以下步骤进行:

  1. 使用docker port命令查看mycontainer容器中80端口的映射:

docker port mycontainer 80

该命令将返回一个字符串,形如:

0.0.0.0:32789

其中,32789就是映射到mycontainer容器内部的80端口。

  1. 在主机上使用curl或其他客户端工具进行访问:

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的别名,可以按照以下步骤进行:

  1. 使用docker network命令将mycontainer连接到bridge网络:

docker network connect --alias webserver bridge mycontainer

  1. 在主机上使用curl或其他客户端工具进行访问:

curl http://webserver

Unter diesen enthält OPTIONS eine Reihe von Parametern, wie zum Beispiel -t (allocate Pseudo-Terminal), -i (STDIN offen halten) usw. CONTAINER ist der Containername oder die ID des auszuführenden Befehls, COMMAND ist der auszuführende Befehl und ARG ist der Parameter des Befehls.

Angenommen, wir möchten auf einen Server zugreifen, der auf Port 80 in einem Container namens mycontainer läuft. Wir können die folgenden Schritte ausführen:

  1. Verwenden Sie den Docker-Exec-Befehl, um den Container aufzurufen:
docker exec -it mycontainer /bin/bash

  1. Führen Sie Befehle innerhalb des Containers aus, um auf den Server zuzugreifen:
curl http://localhost:80🎜🎜Im obigen Befehl wird der Parameter -it verwendet, um dem Container ein interaktives Terminal zuzuweisen, und /bin/bash ist der auszuführende Shell-Befehl. Wenn der Curl-Client im Container installiert wurde, können wir damit auf den Server zugreifen. 🎜🎜2. Verwenden Sie den Docker-Port-Befehl🎜🎜Zusätzlich zur Verwendung des Docker-Exec-Befehls können wir auch den Docker-Port-Befehl verwenden, um die Portzuordnung innerhalb des Docker-Containers anzuzeigen. Die allgemeine Syntax dieses Befehls lautet wie folgt: 🎜🎜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: 🎜
  1. Verwenden Sie den Docker-Port-Befehl, um die Zuordnung von Port 80 im Mycontainer-Container anzuzeigen:
🎜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. 🎜
  1. Verwenden Sie Curl oder andere Client-Tools auf dem Host, um auf Folgendes zuzugreifen:
🎜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: 🎜
  1. Verwenden Sie den Docker-Netzwerkbefehl, um mycontainer mit der Bridge zu verbinden Netzwerk:
🎜docker network connect --alias webserver bridge mycontainer🎜
  1. Verwenden Sie Curl oder andere Clients auf dem Host. Zugriff auf:
🎜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!

Stellungnahme:
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