Я добрая новичок в Docker, и я пытаюсь создать образ для приложения Django с использованием MySQL. Проблема, с которой я столкнулась, - после запуска моего изображения получить следующую ошибку: django.db.utils.OperationalError: (2002, «Не удается подключиться к локальному серверу MySQL через сокет»/var/run/mysqld/mysqld .sock '(111) "). В качестве основы для образа Я использую FROM django:python2
, я установил сервер, используя следующие команды:Использование MySQL в контейнере Docker
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
EXPOSE 3306
К сожалению, ничего не получалось. Я также убедился, что сервер работает, но проблема все еще существует.
Давайте посмотрим ваш '' Dockerfile' и докер -compose.yml'. Настройки базы данных в 'settings.py' также могли бы помочь в проницательности. – denvaar
Как и я, новичок в stackoverflow, я не уверен, как опубликовать весь файл. Честно говоря, я написал большую часть «Dockerfile» в сообщении, кроме «apt-get» для разных модулей и т. Д. Что касается 'docker-compose', я написал что-то короткое, и он потерпел неудачу с той же ошибкой, поэтому я решил сначала запустите мой «Dockerfile». – devdev
Вы можете попасть в рабочий контейнер? 'docker exec -it [имя вашего контейнера здесь]/bin/bash' даст вам оболочку, где вы можете выполнить некоторую отладку. Изнутри контейнера вы можете попытаться проверить, работает ли mysql (он не похож на него): '/etc/init.d/mysql status' – denvaar