【问题标题】:Connect localhost Mysql from Docker .net core从 Docker .net 核心连接 localhost Mysql
【发布时间】:2017-12-17 00:27:41
【问题描述】:

我在 Docker 的 .net 核心中使用 WebAPI。我想将此 API 部署在 AWS EC2 实例上,并使用本地 mysql 数据库与其他 Web 应用程序一起使用。

如何从 docker 内部访问这个 Mysql?

在本地我可以通过使用我的私人 IP 地址来完成

=> optionsBuilder.UseMySql(@"Server=$my_local_ip;database=db_name;uid=user;pwd=pass;");

如何确定我应该使用哪个$my_local_ip 来连接数据库?

但是在 EC2 上使用私有 ip 时,我在发送无法连接到任何 MYSQL 主机的请求时出错。

【问题讨论】:

  • 您的 MySQL 数据库和 Web API 容器是否在同一台机器上? MySQL 是否也在容器内运行?
  • @JanshairKhan MySQL 数据库和 WebAPI 在同一台机器上。容器中只有 WebAPI。 MySQL 正在 Docker 之外的 localhost 上工作。

标签: mysql amazon-web-services docker amazon-ec2


【解决方案1】:

对于 MySQL 服务器,您通常必须指定要连接的端口,因为同一服务器上的每个实例使用不同的端口。

【讨论】:

  • 但是这个 Mysql 不能在 docker 中工作。 docker 怎么知道在哪里寻找这个端口?
【解决方案2】:

在启动 Web API 容器时使用 --network=host 标志,并使用连接字符串中的 localhost 作为主机名。这将使 Docker 容器能够访问主机网络。因此,您可以从容器中访问 MySQL 数据库。

注意:这对于运行容器化工作负载是不安全的。 Click Here to learn more

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 2020-09-29
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2020-03-18
    • 2019-01-03
    相关资源
    最近更新 更多