首页 >数据库 >mysql教程 >如何在不更改容器配置的情况下将本地MySQL数据库连接到Docker容器?

如何在不更改容器配置的情况下将本地MySQL数据库连接到Docker容器?

Barbara Streisand
Barbara Streisand原创
2024-10-29 16:36:02898浏览

How to Connect a Local MySQL Database to a Docker Container Without Changing Container Configuration?

将本地 MySQL 数据库连接到 Docker 容器

使用 Docker 化设置将应用程序过渡到生产环境时,可能希望避免使用基于容器的数据库。本文探讨如何将本地托管的 MySQL 数据库连接到 Docker 容器中运行的应用程序,而无需修改容器的数据库配置。

修改 docker-compose.yml

提供的 docker-compose .yml 文件包含一个名为“app-db”的服务,用于初始化容器内的 MySQL 数据库。要将应用程序连接到外部 MySQL 数据库:

  1. 从 docker-compose.yml 文件中删除“app-db”服务。
  2. 添加“environment”部分“web-app”服务,其中指定数据库连接详细信息:
<code class="yaml">version: '3'
services:
  web-app:
    build:
      context: .
      dockerfile: web-app/Dockerfile
    ports:
      - 8080:8080
    environment:
      - MYSQL_HOST=host.docker.internal
      - MYSQL_PORT=3306
      - MYSQL_USER=username
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=database_name</code>

确保主机解析

对于 Linux 系统,Docker 容器与主机的网络配置隔离。要允许 Web 应用程序解析 host.docker.internal 地址,容器必须使用“--add-host host.docker.internal:host-gateway”参数启动:

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

这个参数确保容器可以将 host.docker.internal 解析为主机的 IP 地址。

连接到外部数据库

修改后的 docker-compose.yml 和容器配置就位, Web 应用程序应该能够连接到环境变量中指定的本地托管的 MySQL 数据库。

以上是如何在不更改容器配置的情况下将本地MySQL数据库连接到Docker容器?的详细内容。更多信息请关注PHP中文网其他相关文章!

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