我有一个django项目 Django Docker
我使用的是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
hostnetwork
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 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' } }