Maison > Opération et maintenance > Docker > le corps du texte

Comment accéder au serveur dans Docker

PHPz
Libérer: 2023-04-10 15:27:00
original
1115 Les gens l'ont consulté

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

  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

Parmi eux, OPTIONS inclut une série de paramètres, tels que -t (allouer pseudo-terminal), -i (Garder STDIN ouvert) etc. CONTAINER est le nom du conteneur ou l'ID de la commande à exécuter, COMMAND est la commande à exécuter et ARG est le paramètre de la commande.

Supposons que nous souhaitions accéder à un serveur fonctionnant sur le port 80 dans un conteneur nommé mycontainer. Nous pouvons suivre les étapes suivantes :

  1. Utilisez la commande docker exec pour entrer dans le conteneur :
  2. docker exec -it mycontainer /bin/bash

    1. Exécuter des commandes à l'intérieur du conteneur pour accéder au serveur :
    curl http://localhost:80🎜🎜Dans la commande ci-dessus, le paramètre -it est utilisé pour allouer un terminal interactif au conteneur, et /bin/bash est la commande shell à exécuter. Si le client curl est installé à l'intérieur du conteneur, nous pouvons l'utiliser pour accéder au serveur. 🎜🎜2. Utilisez la commande docker port🎜🎜En plus d'utiliser la commande docker exec, nous pouvons également utiliser la commande docker port pour afficher le mappage des ports à l'intérieur du conteneur Docker. La syntaxe générale de cette commande est la suivante : 🎜🎜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 : 🎜
    1. Utilisez la commande docker port pour afficher le mappage du port 80 dans le conteneur mycontainer :
    🎜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. 🎜
    1. Utilisez curl ou d'autres outils clients sur l'hôte pour accéder :
    🎜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 : 🎜
    1. Utilisez la commande docker network pour connecter mycontainer au pont. réseau :
    🎜docker network connect --alias webserver bridge mycontainer🎜
    1. Utilisez curl ou d'autres clients sur l'hôte Pour accéder :
    🎜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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal