我已经在centOS中安装了mysql,现在,我想启动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 .但我还是会犯同样的错误。
我还看了这个拟议解决方案
有什么想法吗?
谢了西奥。
发布于 2018-12-31 03:06:16
我相信Dockerfile或run命令的问题
看来您的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 push adilm7177/centos-mysql:latest

更新:
RUN systemctl enable mysqld添加之后,我可以开始停止使用systemctl。

https://stackoverflow.com/questions/53979277
复制相似问题