Macos Can´;t从Docker容器访问外部数据库
我有一个简单的用于PHP和Nginx的Docker Compose文件。 PHP应用程序需要访问外部数据库(不在Docker中) docker-compose.yml:Macos Can´;t从Docker容器访问外部数据库,macos,docker,networking,Macos,Docker,Networking,我有一个简单的用于PHP和Nginx的Docker Compose文件。 PHP应用程序需要访问外部数据库(不在Docker中) docker-compose.yml: version: '3' services: nginx: image: nginx:latest container_name: nginx ports: - "80:80" - "443:443
version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/nginx/core:/etc/nginx/conf.d
- ./:/var/www/
- ./docker/nginx/logs:/var/log/nginx/
links:
- php
php:
build: .
container_name: php-fpm
environment:
XDEBUG_CONFIG: remote_host=host.docker.internal remote_enable=1
volumes:
- ./:/var/www/
- ./docker/php/logs:/var/log/
我们的数据库访问受到IP的限制。Docker主机(我的Mac)可以正常访问
如果我在主机上创建ssh隧道,并使用容器中的主机IP地址,则一切正常。但是我不想使用SSH隧道(我们在不同的项目上有许多数据库)。我认为问题可能与每个Docker容器都有自己的内部IP地址有关,并且您的DBMS可能会将其检测为连接源(而不是主机IP)。有几种网络设置和模式,如“主机”模式,docker在其中共享主机网络()。我认为问题可能与以下事实有关:每个Docker容器都有自己的内部IP地址,而您的DBMS可能将其检测为连接源(而不是主机IP)。有几种网络设置和模式,如“主机”模式,docker在其中共享主机网络()。也许这些模式中的一种可以帮助你。