我在Docker的.net核心中使用WebAPI。我想在AWS EC2实例上部署此API,本地mysql数据库与其他Web应用程序一起使用。
如何从docker内部访问这个Mysql?
在本地我可以通过使用我的私人IP地址来完成
=> optionsBuilder.UseMySql(@"Server=$my_local_ip;database=db_name;uid=user;pwd=pass;");
如何确定我应该使用哪个$my_local_ip
连接到DB?
但是当在EC2上使用私有ip时,我发送错误,同时发送它无法连接到任何MYSQL主机的请求。
对于MySQL服务器,您通常必须指定要连接的端口,因为同一服务器上的每个实例都使用不同的端口。
在启动Web API容器时使用--network=host
标志,并在连接字符串中使用localhost
作为主机名。这将使Docker容器能够访问主机网络。因此,您可以从容器访问MySQL数据库。
注意:这对于运行容器化工作负载来说是不安全的。 Click Here to learn more