在VM上的docker容器中访问数据库

问题描述 投票:1回答:2

我在Windows 7 x64下使用PC。

我安装了OracleVM,然后在那里安装了Ubuntu 18.04。在Ubuntu中,我安装了Docker并使用PHP,Nginx和MariaDB创建并运行了一个环境,然后我设法在那里建立了一个Drupal 8站点。一切顺利,我设法从我的Windows PC上的浏览器访问该网站。我使用映射VM设置上的端口进行设置。

但我不知道如何从Windows客户端(例如HeidiSQL)访问该容器中的数据库。不幸的是,映射端口对我没有帮助。

这是我的容器列表

example3_project_adminer     /entrypoint.sh php -S 0.0. ...   Up      9000/tcp            
example3_project_mailhog     MailHog                          Up      1025/tcp, 8025/tcp  
example3_project_mariadb     /docker-entrypoint.sh mysqld     Up      3306/tcp            
example3_project_nginx       /docker-entrypoint.sh sudo ...   Up      80/tcp              
example3_project_php         /docker-entrypoint.sh sudo ...   Up      9000/tcp            
example3_project_portainer   /portainer --no-auth -H un ...   Up      9000/tcp            
example3_project_traefik     /traefik -c /dev/null --we ...   Up      0.0.0.0:8000->80/tcp

你能澄清我,怎么做?

docker mariadb virtual-machine windows-7-x64 docker-machine
2个回答
0
投票

如果没有问题的最小可验证示例(例如此情况下的docker调用),则无法自信地回答。但我猜你没有将MariaDB端口暴露给docker主机操作系统(Ubuntu 18.04)。

看看nginx是如何工作的,因为它明显暴露,并确保你的mariadb容器类似(可能与端口3306 mysql / mariadb端口)。

一旦您可以从Ubuntu计算机连接,您应该能够依次通过Oracle VM映射端口。


0
投票

我设法做到了。首先,我在mariadb容器的配置中添加了端口转发。

the mariadb configuration

我执行了以下docker命令

docker-compose stop
docker-compose up -d

后来,我在VM端口转发规则中添加了一条新规则

VM port forwarding rules

现在我可以从我的Windows客户端程序连接到数据库了

© www.soinside.com 2019 - 2024. All rights reserved.