Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实例化具有唯一IP地址的多个docker compose管道_Docker_Docker Compose_Docker Networking_Docker Network - Fatal编程技术网

实例化具有唯一IP地址的多个docker compose管道

实例化具有唯一IP地址的多个docker compose管道,docker,docker-compose,docker-networking,docker-network,Docker,Docker Compose,Docker Networking,Docker Network,我正在尝试复制一个docker compose管道。此管道协调一组容器,并最终将其中一个容器上的端口80映射到主机上的端口8000,以进行外部通信 如何创建同一docker compose管道的多个实例,以便每个实例都有自己的IP地址,我可以在其他机器上使用该IP地址通过端口8000访问管道的相应实例 这是我试图实现的视觉表现 请注意,这两个实例使用相同的docker compose.yml,并公开相同的端口。然而,区别在于它们被分配了唯一的IP地址。我是否可以指示docker compose

我正在尝试复制一个
docker compose
管道。此管道协调一组容器,并最终将其中一个容器上的
端口80
映射到主机上的
端口8000
,以进行外部通信

如何创建同一docker compose管道的多个实例,以便每个实例都有自己的IP地址,我可以在其他机器上使用该IP地址通过端口8000访问管道的相应实例

这是我试图实现的视觉表现

请注意,这两个实例使用相同的
docker compose.yml
,并公开相同的端口。然而,区别在于它们被分配了唯一的IP地址。我是否可以指示docker compose管道仅在特定网络上启动?或者总是在部署之前创建一个新的网络,这样每个实例都会获得一个新的ip地址,并且由于该抽象,不会发生端口冲突

还有,这是一个好方法吗?如果不是,以动态方式访问同一
docker compose
管道的多个实例的最佳策略是什么,这样我就不必手动修改每个
docker compose.yml
文件来映射未使用的端口了?

如何:

cat <<EOF
version: "3"
  services:
    web1:
      image: python:2.7-alpine
      command: ["python", "-m", "SimpleHTTPServer", "8080"]
    web2:
      image: python:2.7-alpine
      command: ["python", "-m", "SimpleHTTPServer", "8080"]
EOF
然后确认两个地址在同一端口上响应:

$ curl -sv 172.28.0.2:8080
...
* Connected to 172.28.0.3 (172.28.0.3) port 8080 (#0)
...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
...

$ curl -s 172.28.0.3:8080
...
希望有帮助

$ curl -sv 172.28.0.2:8080
...
* Connected to 172.28.0.3 (172.28.0.3) port 8080 (#0)
...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
...

$ curl -s 172.28.0.3:8080
...
docker-compose -p mytest1 up -d
docker-compose -p mytest2 up -d