[英]Docker connect host mysql for django
I am trying to connect to my host mysql from docker container but I don't know how to connect.我正在尝试从 docker 容器连接到我的主机 mysql,但我不知道如何连接。 I have a django project for that I followed Django Docker I am using this tutorial this one is working fine for djnago and postgres.我有一个 django 项目,我遵循了Django Docker我正在使用本教程,这个对于 djnago 和 postgres 工作正常。
I am using mac and I am using mamp server I want to connect my djnago app to my host mysql.我正在使用 mac,我正在使用 mamp 服务器我想将我的 djnago 应用程序连接到我的主机 mysql。
My docker file code is:我的 docker 文件代码是:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
And my docker compose file is:我的 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
This one is working fine but I am trying to connect my django app to my host mysql.这个工作正常,但我正在尝试将我的 django 应用程序连接到我的主机 mysql。
I don't know how to connect host mysql from my docker.我不知道如何从我的 docker 连接主机 mysql。
first with bellow command create a network named hostnetwork
to have fixed host ip inside containers首先使用波纹管命令创建一个名为hostnetwork
的网络,以便在容器内拥有固定的主机 ip
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 hostnetwork
then change your docker-compose config to connect your containers to hostnetwork
然后更改您的hostnetwork
-compose 配置以将您的容器连接到hostnetwork
services:
db:
image: image_name
networks:
- hostnetwork
networks:
hostnetwork:
external: true
now you can set django admin db config to your host mysql engine like bellow sample:现在您可以将 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'
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.