Я создаю контейнер для разработки / тестирования, который содержит ряд элементов, включая сервер mysql, который должен запускаться внутри для доступа к коду.Чтобы продемонстрировать проблему, я запускаю следующую команду Dockerfile
с docker run -i -t demo_mysql_server
:
FROM amazonlinux:2018.03
RUN yum -y update && yum -y install shadow-utils mysql-server
К сожалению, после сборки Docker-контейнера я получаю общую ошибку соединения (см. 1 , 2 )
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
, что можно исправить, войдя в систему как администратор с docker run -i -u 0 -t demo_mysql_server
и выполнив:
echo "NETWORKING=yes" >/etc/sysconfig/network
service network restart
/etc/init.d/mysqld start
chkconfig mysqld on
, который, кажется, все включает.Тем не менее, включение их в команды RUN, по-видимому, не приводит к включению службы и входу в систему, поскольку администратор требует перезапуска службы, как указано выше, добавления пользователя и работы в качестве пользователя без прав администратора, а также попытки запустить службу приводит к ошибкам внешнего вида.:
bash: /etc/sysconfig/network: Permission denied
[testUser@544a938c44c1 /]$ service network restart
[testUser@544a938c44c1 /]$ /etc/init.d/mysqld start
/etc/init.d/mysqld: line 16: /etc/sysconfig/network: No such file or directory
[testUser@544a938c44c1 /]$ chkconfig mysqld on
You do not have enough privileges to perform this operation.
Это нормальная ошибка, чтобы увидеть, и как мне заставить экземпляр MySQL-сервера продолжать работать?