在Docker容器中使用MySQL

时间:2016-10-10 21:39:54

标签: mysql django docker

我是Docker的新手,我正在尝试使用MySQL为Django App构建一个图像。我遇到的问题是,在运行我的图像后,我收到以下错误: django.db.utils.OperationalError:(2002,“无法通过套接字连接到本地MySQL服务器”/ var / run / mysqld /mysqld.sock'(111)“)。作为我使用xpath的图像的基础,我使用以下命令安装了服务器:

  • FROM django:python2
  • RUN echo "mysql-server mysql-server/root_password password X" | debconf-set-selections
  • RUN echo "mysql-server mysql-server/root_password_again password X" | debconf-set-selections

为了解决这个问题,我尝试了多种解决方案,我在互联网上找到了这些解决方案:

  • RUN apt-get update && apt-get install -y mysql-server
  • RUN touch /var/run/mysqld/mysqld.sock
  • RUN chmod -R 755 /var/run/mysqld/mysqld.sock
可悲的是,没有任何效果。我还确保服务器正在运行,但问题仍然存在。

1 个答案:

答案 0 :(得分:2)

这是一个非常有效的示例配置。

Dockerfile

FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r requirements.txt

确保更改requirements.txt文件的路径(如果存在。)

搬运工-compose.yml

db:
  image: mysql
web:
  build: .
  environment:
    - PYTHONPATH=/code/server/
    - DJANGO_SETTINGS_MODULE=path.to.your.settings.file
  command: python server/manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db

确保使用设置文件的正确虚线路径替换DJANGO_SETTINGS_MODULE的路径。

docker-compose build 然后 docker-compose up

修改

如果您使用此配置,请在settings.py

中将HOST的值更改为db