Docker est une technologie de conteneurisation légère largement utilisée dans les environnements de développement, de test et de production de logiciels. Avec les conteneurs Docker, les applications et leurs dépendances peuvent être regroupées dans un conteneur portable pour une utilisation facile dans différents environnements. Cependant, lors de l'utilisation de conteneurs Docker, nous devrons peut-être accéder au serveur à l'intérieur du conteneur Docker. Cet article explique comment accéder au serveur dans Docker.
1. Utilisez la commande docker exec
Docker fournit officiellement une commande docker exec qui peut exécuter des commandes dans un conteneur en cours d'exécution. La syntaxe générale de cette commande est la suivante :
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]]
🎜🎜Où, PRIVATE_PORT est le port à mapper, PROTO est le protocole de mappage, tel que TCP ou UDP, etc. Si PROTO n'est pas spécifié, la valeur par défaut est TCP. 🎜🎜Supposons que nous souhaitions accéder au port 80 à l'intérieur d'un conteneur nommé mycontainer, vous pouvez suivre les étapes suivantes : 🎜docker port mycontainer 80
🎜🎜Cette commande renverra une chaîne sous la forme : 🎜🎜0.0.0.0:32789
🎜🎜Parmi eux, 32789 est mappé au port interne du conteneur mycontainer 80. 🎜curl http://localhost:32789
🎜 🎜 Dans la commande ci-dessus, localhost est le nom d'hôte et 32789 est le numéro de port qui vient d'être obtenu à partir de la commande docker port. 🎜🎜3. Utilisez la commande docker network🎜🎜Si le conteneur Docker s'exécute sur son propre réseau, nous pouvons utiliser la commande docker network pour connecter le conteneur au réseau de l'hôte ou d'autres conteneurs. La syntaxe générale de cette commande est la suivante : 🎜🎜docker network connect [OPTIONS] NETWORK CONTAINER
🎜🎜 Parmi eux, OPTIONS inclut une série de paramètres, tels que --alias (définir un alias pour le conteneur), --ip (pour le conteneur) Paramètres du conteneur Adresse IP) et ainsi de suite. NETWORK est le nom ou l'ID du réseau auquel se connecter, et CONTAINER est le nom ou l'ID du conteneur auquel se connecter. 🎜🎜Supposons que nous souhaitions connecter un conteneur nommé mycontainer au réseau de pont par défaut et lui donner un alias nommé webserver. Vous pouvez suivre les étapes suivantes : 🎜docker network connect --alias webserver bridge mycontainer
🎜curl http://webserver
🎜🎜Dans la commande ci-dessus, webserver est l'alias que nous avons défini pour le conteneur, accessible directement depuis l'hôte. 🎜🎜Résumé🎜🎜L'accès au serveur interne d'un conteneur Docker est un problème important lors de l'utilisation de la technologie Docker. Cet article présente trois méthodes pour atteindre cet objectif. L'utilisation de la commande docker exec pour exécuter des commandes à l'intérieur du conteneur est le moyen le plus simple. L'affichage du mappage des ports via la commande docker port est également une méthode pratique, et l'utilisation de la commande docker network pour se connecter au réseau permet un accès plus flexible au serveur à l'intérieur. le conteneur. Dans les applications réelles, nous pouvons choisir différentes méthodes en fonction de besoins spécifiques pour accéder facilement et rapidement au serveur à l'intérieur du conteneur Docker. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!