代码之家  ›  专栏  ›  技术社区  ›  Nilay Singh

Docker connect主机mysql for django

  •  0
  • Nilay Singh  · 技术社区  · 6 年前

    我有一个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。

    0 回复  |  直到 6 年前
        1
  •  1
  •   hamid_atf    4 年前

    首先使用下面的命令创建一个名为 hostnetwork 在容器中具有固定主机ip

    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'
        }
    }