gpt4 book ai didi

docker - 连接多个Docker应用

转载 作者:行者123 更新时间:2023-12-02 20:07:50 24 4
gpt4 key购买 nike

我经营着一系列站点,这些站点独立运行,但需要能够通过PHP对自定义单点登录服务进行curl调用。

如果我将所有站点设置为单独的容器堆栈(这意味着sso拥有自己的共享容器集(Nginx,PHP和MySQL),而site1拥有自己的共享容器集,并且与site2,site3和site4相同)他们就无法互相交谈。我尝试设置自定义网络,但随后必须包含一个主机文件,该文件指定SSO服务器URL的IP地址,以便其他站点可以连接到该文件。

这是我当前的docker-compose文件:

version: "3"
services:
nginx:
image: nginx:1.10.3
ports:
- "8080:80"
- "8443:443"
volumes:
- ./projects:/var/www
- ./.docker/nginx/sites-enabled/site.conf:/etc/nginx/conf.d/site.conf
- ./.docker/nginx/sites-enabled/site-ssl.conf:/etc/nginx/conf.d/site-ssl.conf
- ./.docker/certs:/etc/nginx/certs
links:
- php
networks:
mc-net:
ipv4_address: 172.245.0.2
php:
build:
context: ./.docker/fpm
volumes:
- ./projects:/var/www
- ./.docker/sessions.inc.php:/var/www/sessions/sessions.inc.php
- ./.docker/fpm/hosts.txt:/etc/hosts
expose:
- "9000"
links:
- percona:percona
networks:
mc-net:
ipv4_address: 172.245.0.3
percona:
image: percona/percona-server:5.6
environment:
MYSQL_ROOT_PASSWORD: *****
TZ: America/Los_Angeles
ports:
- "8306:3306"
volumes:
- ./.docker/database:/var/lib/mysql
command:
- 'sh -c "ln -snf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime && echo America/Los_Angeles > /etc/timezone"'
- '--user=mysql'
networks:
mc-net:
ipv4_address: 172.245.0.4
networks:
mc-net:
driver: bridge
ipam:
config:
- subnet: 172.245.0.0/16

我是Docker的新手,我只需要一种方法使其站点1可以通过其URL curl 到sso。不确定,我不知道该去哪里。

最佳答案

对所有容器使用docker网络,只需按其名称调用sso容器即可。如果使用它的所有服务都在docker网络内部,则您甚至不需要为sso公开端口。
ssodockername:port

关于docker - 连接多个Docker应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48565400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com