從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」。例如:
透過實作這些更改,您可以成功將本機 MySQL 資料庫連接到在 Docker 容器中執行的應用程式。db = mysql.connector.connect( host="host.docker.internal", ... )
以上是如何從 Docker 容器連接到本機託管的 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!