在Docker容器中使用MySQL
我有点新的Docker,我正在尝试使用MySQL为Django应用程序构build一个图像。 我遇到的问题是,运行我的图像后,我得到以下错误: django.db.utils.OperationalError:(2002,“无法通过套接字连接到本地MySQL服务器”/ var / run / mysqld / mysqld。袜子(111)“) 。 作为我使用的图像的基础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
为了解决这个问题,我尝试了多种解决scheme,我在网上find了这样的解决scheme:
-
RUN touch /var/run/mysqld/mysqld.sock
-
RUN chmod -R 755 /var/run/mysqld/mysqld.sock
-
EXPOSE 3306
可悲的是,没有任何工作。 我也确定服务器正在运行,但问题仍然存在。
这是一个很好的configuration示例。
Dockerfile
FROM python:3.5 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD . /code/ RUN pip install -r requirements.txt
确保将path更改为您的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
确保将正确的虚线pathreplace为DJANGO_SETTINGS_MODULE
path到您的设置文件。
docker-compose build
然后docker-compose up
编辑
如果你使用这个configuration,在settings.py中把HOST
的值改为db