实例化具有唯一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