首页  >  文章  >  数据库  >  如何从 Docker 容器连接到本地托管的 MySQL 数据库?

如何从 Docker 容器连接到本地托管的 MySQL 数据库?

Susan Sarandon
Susan Sarandon原创
2024-10-26 18:42:30201浏览

How to Connect to a Locally Hosted MySQL Database from a Docker Container?

从 Docker 容器连接到本地托管的 MySQL 数据库

将应用程序过渡到生产环境时,最好避免使用容器 -托管数据库。本文介绍如何使用 Docker Compose 将本地 MySQL 数据库连接到在容器中运行的应用程序。

Docker Compose 配置

您提供的 Docker Compose 配置演示了如何使用MySQL 数据库的单独“app-db”服务。要连接到本地 MySQL 数据库,请按如下方式调整 Compose 文件:

<code class="yaml">version: '3'
services:
  web-app:
    ...

  app-db:
    image: mysql:8
    environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_DATABASE=<database-name>
    ports:
      - 3306:3306</code>

通过主机名连接

而不是使用 'localhost',它指的是容器的内部主机名,使用“host.docker.internal”。这将解析为 Docker 主机的 IP 地址,使您能够连接到本地数据库。

Linux 配置

对于 Linux 系统,启动 Docker 时添加以下参数容器:

<code class="bash">--add-host host.docker.internal:host-gateway</code>

用法示例

在您的 Web 应用程序中,将数据库连接信息替换为使用“host.docker.internal”而不是“localhost”。例如:

db = mysql.connector.connect(
    host="host.docker.internal",
    ...
)

通过实施这些更改,您可以成功将本地 MySQL 数据库连接到在 Docker 容器中运行的应用程序。

以上是如何从 Docker 容器连接到本地托管的 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn