首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >centos7:不允许操作- mysql

问centos7:不允许操作- mysql
EN

Stack Overflow用户
提问于 2018-12-30 16:18:10
回答 2查看 3.1K关注 0票数 0

我已经在centOS中安装了mysql,现在,我想启动mysql服务器。但是,我得到了这个错误:

代码语言:javascript
复制
# systemctl start mysqld
Failed to get D-Bus connection: Operation not permitted

为了修复它,我创建了一个Dockerfile,如下所示

代码语言:javascript
复制
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"]

然后运行它来创建一个图像。

代码语言:javascript
复制
$ docker build --rm -t local/c7-systemd .

但我还是会犯同样的错误。

我还看了这个拟议解决方案

有什么想法吗?

谢了西奥。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-31 03:06:16

我相信Dockerfile或run命令的问题

看来您的Dockerfile中的问题就在这一行

代码语言:javascript
复制
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \

这里是MySQL centos Dockerfile

代码语言:javascript
复制
# 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"]

现在,下一步是运行

代码语言:javascript
复制
--privileged is not enough, you also need to mount cgroup

这是命令

代码语言:javascript
复制
docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -it adilm7177/centos-mysql

您可以自己构建,也可以从我在测试期间构建和推送的对接器注册表中提取上述映像。

代码语言:javascript
复制
docker push adilm7177/centos-mysql:latest

​

​

更新:

代码语言:javascript
复制
RUN systemctl enable  mysqld

添加之后,我可以开始停止使用systemctl。

​

​

票数 2
EN

Stack Overflow用户

发布于 2018-12-31 04:49:17

我能够很好地使用船坞-系统-替换脚本运行mysql,该脚本模拟"systemctl“命令,而不使用活动的systemd守护进程。您可以在码头-系统-图像示例中查看这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53979277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档