mysql - Docker为django连接主机mysql
问题描述
我正在尝试从 docker 容器连接到我的主机 mysql,但我不知道如何连接。我有一个 django 项目,我遵循Django Docker我正在使用本教程,这个教程适用于 djnago 和 postgres。
我正在使用 mac,我正在使用 mamp 服务器我想将我的 djnago 应用程序连接到我的主机 mysql。
我的 docker 文件代码是:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
我的 docker compose 文件是:
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
这个工作正常,但我正在尝试将我的 django 应用程序连接到我的主机 mysql。
我不知道如何从我的 docker 连接主机 mysql。
解决方案
首先使用以下命令创建一个名为hostnetwork
在容器内具有固定主机 IP的网络
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 hostnetwork
然后更改您的 docker-compose 配置以将您的容器连接到hostnetwork
services:
db:
image: image_name
networks:
- hostnetwork
networks:
hostnetwork:
external: true
现在您可以将 django admin db config 设置为您的主机 mysql 引擎,如下例所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'username',
'PASSWORD': '',
'HOST': '192.168.0.1',
'PORT': '3306'
}
}
推荐阅读
- flutter - 如何将 whatsapp 聊天导出到我的 Flutter 应用程序?
- ballerina - 在 Ballerina lang 的模块中创建服务
- java - 如何重构返回不同类型列表的方法
- javascript - 将键分配给对象数组
- visual-studio-2015 - Dropbox API nuget 安装
- javascript - 以不同的顺序比较具有相同键的 2 个对象
- jquery - 将所有叶子添加到节点 d3
- javascript - 如何在移动标记上从 mapbox-gl 获取 formatted_address
- google-sheets - 谷歌电子表格和 Bigquery 之间的数据连接问题:在 Bigquery 查询编辑器中 -> 查询已在执行中
- tensorflow - Keras:简单的 1 变量训练以获得平均值