从 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中文网其他相关文章!