2015-07-06 2 views
1

Я создаю изображение в докере в режиме установки mysql, но он дает ошибку для запуска mysql.Ошибка запуска mysql docker

My Dockerfile

Ошибка возникает при обработке и линии 25 Dockerfile:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) 

Я обнаружил, что ошибка происходит потому, что MySQL не работает. Докер печати ниже, чтобы повернуть линию 22:

bin boot dev etc home lib lib64 media mnt opt proc root run sbin scripts srv sys tmp usr var MySQL is stopped. 

Stack trace complete

Любое предложение?

ответ

0

Вам нужно выяснить, почему MySQL не запускается. Войдите в среду и вручную попробуйте запустить MySQL и посмотреть, что такое ошибка.

Вы считаете, что основываешь свое изображение на одном из официальных изображений MySQL Docker? https://registry.hub.docker.com/_/mysql/

1

Демон docker выполнит команду RUN и запишет результат, и, похоже, ваш статус службы mysql не привязан к изображению. Чтобы решить эту проблему, вы можете попробовать эти способы

  • Помещенный все команды в одну команду RUN
    RUN echo $(service mysql restart) && echo $(service mysql status) && sudo mysql -uroot -pmysql_pass -e "CREATE DATABASE wordpress;" && sudo mysql -uroot -pmysql_pass -e "CREATE USER 'wordpressuser'@'%';" && sudo mysql -uroot -pmysql_pass -e "SET PASSWORD FOR 'wordpressuser'@'%'= PASSWORD('${mysql_pass}');" && sudo mysql -uroot -pmysql_pass -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%'; FLUSH PRIVILEGES;"

  • инициализации MySQL в entrypoint с Баш скрипт.

init_mysql.sh

#!/bin/sh 
sudo mysql -uroot -pmysql_pass -e "CREATE DATABASE wordpress;" 
sudo mysql -uroot -pmysql_pass -e "CREATE USER 'wordpressuser'@'%';" 
sudo mysql -uroot -pmysql_pass -e "SET PASSWORD FOR 'wordpressuser'@'%'= PASSWORD('${mysql_pass}');" 
sudo mysql -uroot -pmysql_pass -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%'; FLUSH PRIVILEGES;" 

и добавьте следующие строки в dockerfile

ADD init_mysql.sh/
RUN \ 
    cd/\ 
    chmod 777 init_mysql.sh 

CMD ./init_mysql.sh 
+0

@Tiago вы должны попытаться использовать 'CMD/Opt/init_mysql.sh' или' CMD [ "/ бен/bash "," -c "," /opt/init_mysql.sh "]' – Freeznet

+0

Я изменил свой файл Docker для «CMD /opt/init_mysql.sh», но он не запускает мой скрипт «init_mysql.sh». Вход в vm и запуск, "-lha ls/opt /" show: -rwxr-xr-x 1 root root 39 Jul 9 22:20 init_mysql.sh. То есть файл сценария создается, но не выполняется, потому что каталог «/ opt/teste001» не создается. –

Смежные вопросы