Docker中关于使用容器名称代替IP的网络访问设置

要在Docker中创建一个公用网络并将nginx、php、mysql和oracle容器连接起来,你可以按照以下步骤进行操作,内部服务之间通过容器名称互联

一、创建容器时直接附带网络

  1. 创建Docker网络
    首先,你需要创建一个Docker网络。可以使用以下命令创建一个名为my_network的网络:

    docker network create my_network
  2. 运行MySQL容器
    使用以下命令启动MySQL容器并将其连接到网络:

    docker run -d --name mysql_container --network my_network -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mydb mysql:latest
  3. 运行Oracle容器
    启动Oracle容器(请确保你有合适的Oracle镜像)并将其连接到网络:

    docker run -d --name oracle_container --network my_network oracle/database:latest
  4. 运行PHP容器
    启动PHP容器并连接到网络:

    docker run -d --name php_container --network my_network php:latest
  5. 运行Nginx容器
    最后,启动Nginx容器并连接到网络:

    docker run -d --name nginx_container --network my_network -p 80:80 nginx:latest
  6. 连接容器
    现在,所有容器都在同一个网络my_network中,可以通过容器名称进行通信。例如,在PHP容器中,你可以通过mysql_container来访问MySQL

你可以使用以下命令查看所有容器和网络:

docker ps
docker network ls

二、已有容器设置通过容器名称访问网络

要将已经创建好的Docker容器连接到同一个网络,你可以使用以下步骤:

  1. 创建网络(如果尚未创建)
    如果你还没有创建网络,可以使用以下命令创建一个新的网络,比如叫做my_network

    docker network create my_network
  2. 连接已有容器到网络
    使用docker network connect命令将已有的容器连接到指定的网络。假设你有三个容器,分别叫做nginx_containerphp_containermysql_container,你可以按如下方式连接它们到my_network

    docker network connect my_network nginx_container
    docker network connect my_network php_container
    docker network connect my_network mysql_container
  3. 验证连接
    你可以使用以下命令来检查容器是否已经连接到网络:

    docker network inspect my_network

    这将显示连接到该网络的所有容器列表。

本作品采用《CC 协议》,转载必须注明作者和本文链接
每天一点小知识,到那都是大佬,哈哈
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!