Maison  >  Article  >  Opération et maintenance  >  Comment accéder aux services dans Docker depuis le réseau externe

Comment accéder aux services dans Docker depuis le réseau externe

PHPz
PHPzoriginal
2023-04-19 14:12:445785parcourir

Avec la popularité et le développement de la technologie des conteneurs, Docker est devenu un leader dans la technologie de conteneurisation et un outil indispensable pour de nombreux développeurs et personnels d'exploitation et de maintenance. Dans les applications pratiques, nous devons souvent exposer les services de Docker au réseau externe pour y accéder. Dans ce cas, nous devons utiliser la configuration réseau et le mappage des ports de Docker.

1. Configuration du réseau Docker

Il existe quatre types de réseaux Docker : réseau pont, réseau hôte, aucun réseau et réseau personnalisé. Lorsque nous utilisons Docker pour le développement et le déploiement de services, nous utilisons généralement des types de réseau personnalisés, qui permettent de mieux contrôler la communication entre les conteneurs.

La configuration réseau personnalisée de Docker inclut généralement le nom du réseau, le pilote réseau, l'adresse IP et la passerelle du sous-réseau, etc. Parmi eux, les pilotes réseau incluent le pont, la superposition, le macvlan et d'autres types parmi lesquels choisir. Si plusieurs conteneurs doivent accéder les uns aux autres, ils doivent se trouver dans le même réseau personnalisé afin que les conteneurs puissent communiquer entre eux via des noms de conteneur ou des ID de conteneur.

Ensuite, nous présenterons comment créer un réseau personnalisé dans Docker et comment ajouter le conteneur de services au réseau spécifié.

  1. Créer un réseau personnalisé

Nous pouvons créer un réseau personnalisé en spécifiant le nom du réseau lors de la création du conteneur via l'outil de ligne de commande Docker. La commande spécifique est :

docker network create --driver bridge <network_name>

où, <network_name> est le nom du réseau qui doit être créé. <network_name> 为需要创建的网络名称。

  1. 将容器加入到指定网络中

如果需要将容器加入到指定网络中,可以使用 docker run 命令的 --network 选项。具体命令为:

docker run --name <container_name> --network <network_name> <image_name>

其中,<container_name> 为容器名称,<network_name> 为所需加入的网络名称,<image_name> 为容器镜像名称。

二、Docker 端口映射

Docker 容器中的服务默认仅能在容器内部进行访问,如果需要让外部网络可以通过 IP 地址和端口号访问该服务,则需要进行端口映射。Docker 的端口映射通常有两种方式:静态端口映射和动态端口映射。

  1. 静态端口映射

静态端口映射通常在启动容器时进行设置。我们可以使用代表主机上端口号的 参数和代表容器内端口号的 参数将它们绑定在一起。具体命令为:

docker run -p <host_port>:<container_port> <image_name>

例如,将主机的 8080 端口映射到容器中的 80 端口:

docker run -p 8080:80 nginx

在这种情况下,我们可以通过浏览器访问 http://localhost:8080 来访问容器内的服务。

  1. 动态端口映射

动态端口映射通常是通过自动分配一个主机上未被占用的端口来进行的。我们可以使用 -P 或者 -p 命令选项来开启动态端口映射。具体命令为:

docker run -P <image_name>

或者:

docker run -p <container_port> <image_name>

例如,使用 -P 选项启动一个 Tomcat 容器,Docker 会自动分配一个主机上未被占用的端口进行映射:

docker run -d -P tomcat

在这种情况下,我们可以使用 docker ps -a

    Ajoutez le conteneur au réseau spécifié

    Si vous devez ajouter le conteneur au réseau spécifié, vous pouvez utiliser l'option --network de la commande docker run. La commande spécifique est :

    rrreee🎜où, <container_name> est le nom du conteneur, <network_name> est le nom du réseau à ajouter, <image_name> est le nom de l'image du conteneur. 🎜🎜2. Mappage du port Docker🎜🎜Les services du conteneur Docker ne sont accessibles que à l'intérieur du conteneur par défaut. Si vous devez autoriser le réseau externe à accéder au service via l'adresse IP et le numéro de port, le mappage des ports est requis. Il existe généralement deux méthodes de mappage de port pour Docker : le mappage de port statique et le mappage de port dynamique. 🎜🎜🎜Mappage des ports statiques🎜🎜🎜Le mappage des ports statiques est généralement défini lors du démarrage du conteneur. Nous pouvons les lier ensemble à l'aide du paramètre , qui représente le numéro de port sur l'hôte, et du paramètre , qui représente le numéro de port dans le conteneur. La commande spécifique est : 🎜rrreee🎜Par exemple, mappez le port 8080 de l'hôte au port 80 du conteneur : 🎜rrreee🎜Dans ce cas, nous pouvons accéder à http://localhost:8080via le navigateur > pour accéder aux services dans le conteneur. 🎜
      🎜Mappage dynamique des ports🎜🎜🎜Le mappage dynamique des ports est généralement effectué en allouant automatiquement un port inoccupé sur l'hôte. Nous pouvons utiliser l'option de commande -P ou -p pour activer le mappage dynamique des ports. La commande spécifique est : 🎜rrreee🎜 ou : 🎜rrreee🎜 Par exemple, utilisez l'option -P pour démarrer un conteneur Tomcat, et Docker allouera automatiquement un port inoccupé sur l'hôte pour le mappage : 🎜rrreee🎜 Dans ce cas, nous pouvons utilisez la commande docker ps -a pour afficher le numéro de port mappé, puis accédez au service via le navigateur pour accéder à l'adresse IP de l'hôte et au numéro de port attribué. 🎜🎜3. Conclusion🎜🎜Grâce à la configuration du réseau et au mappage des ports, nous pouvons exposer les services du conteneur Docker au réseau externe pour y accéder. Il convient de noter que la sécurité doit être prise en compte lors de la configuration du réseau Docker et du mappage des ports afin d'éviter d'exposer les services du conteneur à l'environnement réseau externe, évitant ainsi les risques de sécurité. 🎜

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!

Déclaration:
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