centos7: операция не разрешена - mysql - PullRequest
0 голосов
/ 30 декабря 2018

Я установил MySQL в CentOS и теперь хочу запустить MySQL-сервер.Однако я получаю эту ошибку:

# systemctl start mysqld
Failed to get D-Bus connection: Operation not permitted

Чтобы исправить это, я создал Dockerfile, как показано

FROM centos:7
MAINTAINER theodosiostziomakas <mymail@gmail.com>
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i 
== systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

, а затем запустил его для создания образа.

$ docker build --rm -t local/c7-systemd .

Но я все еще получаю ту же ошибку.

Я также посмотрел на это предлагаемое решение

Есть идеи?

Спасибо, Тео.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Я могу нормально запустить mysql с помощью скрипта docker-systemctl-replace , который эмулирует команды "systemctl" без активного демона systemd.Вы можете посмотреть на примеры docker-systemctl-images .

0 голосов
/ 31 декабря 2018

Я считаю, что проблема с Dockerfile или с командой запуска

Кажется, проблема в вашем Dockerfile заключается в этой строке

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \

Вот MySQL centos Dockerfile

# Starting from base CentOS image
FROM centos:7

# Enabling SystemD
ENV container docker

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]

# Enabling EPEL & Remi repo
#RUN yum install -y epel-release && \
#yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

# Mysql repo & installion
RUN yum install -y https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm && \
yum install -y mysql mysql-server

RUN chkconfig --level 345 mysqld on
RUN systemctl enable  mysqld


VOLUME [ "/var/lib/mysql" ]

# Port Expose
EXPOSE 3306
CMD ["/usr/sbin/init"]

Теперь, следующий шаг - запустить

--privileged is not enough, you also need to mount cgroup

Вот команда

docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -it adilm7177/centos-mysql

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

docker push adilm7177/centos-mysql:latest

enter image description here

Обновление:

RUN systemctl enable  mysqld

После добавленияЭто я могу начать-остановить с помощью systemctl

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...