Docker集装箱赢得';无法在主机上访问MySQL
我在VirtualBox的VM中安装了一个docker,我正在尝试运行一个容器,其中包含一个连接到主机上MySQL数据库的dot Net核心应用程序。因此,我已经在Virtual Box上为mysql和我的应用程序配置了转发端口。我可以通过主机中的“”访问我的服务,但它会抛出一个错误,表示无法连接MySQL数据库。当我不使用docker时,我还可以在主机上运行应用程序。我已经查看了internet上的其他线程,但是除了下面显示的最后一个命令之外,没有任何东西能够完全启发我,但是我无法运行,因为MySQL身份验证是在应用程序中硬编码的,没有配置文件。一般配置如下所示: Program.csDocker集装箱赢得';无法在主机上访问MySQL,mysql,docker,asp.net-core,virtualbox,host,Mysql,Docker,Asp.net Core,Virtualbox,Host,我在VirtualBox的VM中安装了一个docker,我正在尝试运行一个容器,其中包含一个连接到主机上MySQL数据库的dot Net核心应用程序。因此,我已经在Virtual Box上为mysql和我的应用程序配置了转发端口。我可以通过主机中的“”访问我的服务,但它会抛出一个错误,表示无法连接MySQL数据库。当我不使用docker时,我还可以在主机上运行应用程序。我已经查看了internet上的其他线程,但是除了下面显示的最后一个命令之外,没有任何东西能够完全启发我,但是我无法运行,因为M
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.UseUrls("http://*:80")
.Build();
Docker运行命令
docker run -d -p 3000:80 user_api
// and also tried
docker run -d -p 3000:80 user_api --net=host
// and also tried
docker run -d -p 3000:80 user_api --add-host localhost:127.0.0.1
VirtualBox转发端口:
NAT 3131 -> 3000 tcp
NAT 3306 -> 3306 tcp
NAT 2415 -> 22
localhost(我以为它会出现在端口3131上,但它无论如何都会调用该服务。)
在Dockfile中运行命令,我想我需要添加它,但我不确定程序
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
https://stackoverflow.com/questions/33827342/how-to-connect-mysql-workbench-to-running-mysql-inside-docker/33827463#33827463
由于您在VirtualBox中运行,因此在VirtualBox主机和docker之间还有另一层。在VirtualBox(2)->docker(3)中有一台托管VirtualBox(1)->Linux的机器 docker(3)的“localhost”表示(2),所以它希望mysql在(2)上。在您的例子中,在(1)上有mysql 从(3)访问(1)的唯一方法是显式使用(1)的IP,而不是“localhost”别名。那么,我如何从(1)输入localhost:3131来访问(3)呢?那么,从(3)访问(1)中的mysql难道不可能吗?(谢谢你的耐心)
Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-22 11:23 E. South America Standard Time
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0013s latency).
Other addresses for localhost (not scanned): ::1
rDNS record for 127.0.0.1: rinaldipc.com
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
135/tcp open msrpc
445/tcp open microsoft-ds
2179/tcp open vmrdp
3306/tcp open mysql
5357/tcp open wsdapi
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
https://stackoverflow.com/questions/33827342/how-to-connect-mysql-workbench-to-running-mysql-inside-docker/33827463#33827463