【问题标题】:Docker connect host mysql for djangoDocker为django连接主机mysql
【发布时间】:2023-04-03 02:33:01
【问题描述】:

我正在尝试从 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。

【问题讨论】:

标签: mysql django docker


【解决方案1】:

首先使用下面的命令创建一个名为 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'
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 2015-11-28
    • 2016-01-05
    • 2019-04-26
    • 1970-01-01
    • 2021-12-12
    • 2020-09-21
    • 2020-10-20
    相关资源
    最近更新 更多