访问 VM 上 docker 容器中的数据库
Getting access to database in the docker container on VM
我在 Windows 7 x64 下的 PC 上工作。
我安装了 OracleVM,然后在那里安装了 Ubuntu 18.04。在 Ubuntu 中,我安装了 Docker 并创建了 运行 一个包含 PHP、Nginx 和 MariaDB 的环境,并且我设法在那里设置了一个 Drupal 8 站点。一切顺利,我设法从我的 Windows PC 上的浏览器访问该站点。我使用映射虚拟机设置上的端口来设置它。
但我不知道如何从 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 端口暴露给 docker 主机 OS (Ubuntu 18.04).
看看 nginx
是如何工作的,因为它很明显,并确保你的 mariadb
容器做类似的事情(可能与端口 3306 和 mysql/mariadb 端口)。
一旦您可以从 Ubuntu 机器连接,您应该可以依次通过 Oracle VM 映射端口。
我做到了。
首先,我在 mariadb 容器的配置中添加了端口转发。
我执行了以下 docker 命令
docker-compose stop
docker-compose up -d
后来,我在VM端口转发规则中添加了一条新规则
现在我可以从我的 windows 客户端程序连接到数据库
我在 Windows 7 x64 下的 PC 上工作。
我安装了 OracleVM,然后在那里安装了 Ubuntu 18.04。在 Ubuntu 中,我安装了 Docker 并创建了 运行 一个包含 PHP、Nginx 和 MariaDB 的环境,并且我设法在那里设置了一个 Drupal 8 站点。一切顺利,我设法从我的 Windows PC 上的浏览器访问该站点。我使用映射虚拟机设置上的端口来设置它。
但我不知道如何从 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 端口暴露给 docker 主机 OS (Ubuntu 18.04).
看看 nginx
是如何工作的,因为它很明显,并确保你的 mariadb
容器做类似的事情(可能与端口 3306 和 mysql/mariadb 端口)。
一旦您可以从 Ubuntu 机器连接,您应该可以依次通过 Oracle VM 映射端口。
我做到了。 首先,我在 mariadb 容器的配置中添加了端口转发。
我执行了以下 docker 命令
docker-compose stop
docker-compose up -d
后来,我在VM端口转发规则中添加了一条新规则
现在我可以从我的 windows 客户端程序连接到数据库