【发布时间】:2020-03-29 23:15:18
【问题描述】:
请帮帮我,
我有使用 docker-compose 在 docker 容器上运行的 django 应用程序,但是在尝试连接到本地计算机上的 mysql 数据库时出现错误。
错误信息是这样的:Can't connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
我的 docker-compose.yml 文件是这样的:
version: '3'
services:
web:
container_name: web
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
我的 Dockerfile 是这样的:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY . /code/
RUN apt-get update
RUN apt-get install python3-dev default-libmysqlclient-dev -y
RUN pip install pip -U
RUN pip install -r requirements.txt
【问题讨论】:
-
你应该在你的 Docker Compose 中有一个 mysql 服务,目前你的应用只有一个 Python 容器。
-
请说明你是如何配置mysql连接的。 docker容器可以访问宿主机上的mysql服务器,但不能通过localhost/127.0.0.1,需要使用宿主机ip
标签: mysql django docker docker-compose