编者在使用Docker容器部署服务的时候,用的是CentOS的的的镜像,所以在这里就以CentOS的的的为例。
刚开始,编者在制作的Apache服务多克尔容器时,发现在使用systemctl命令启动服务时,就会出现错误。
[-> ~ Scong ] docker exec -it s1k3b3jwj4 bash
[-> ~ Scong ] yum -y install httpd
[-> ~ Scong ] systemctl start httpd
Failed to get D-Bus connection: Operation not permitted
在网上也是有许多的方法,可能每个人的做法不一,但是都能解决所遇到问题。
如果我们从Docker容器的概念去理解,或许就会知道,其实多克尔一个就是独立的主进程,的英文服务在容器内所运行的。但是的英文它不请立即获取iTunes服务在后台运行服务的。所以如果我们想使用就要需要将泊坞窗内的服务在前台运行。
百度百科我们可以得知,Docker并不是一个完整的系统,它只是一个附加系统,使用文件系统来进行不同层的构建。这也就意味着如果我们需要启动服务,我们就需要授权给docker容器。这样一来,我们才可以让容器内的服务在前台运行。
在看看网上的一些解决方法以及对码器容器的了解。于是编者就在命令行寻找docker run的“ - help”帮助,然后发现确实有许多的参数,在接近末端发现一个参数
[-> ~ Scong ] docker run --help
... ...
--privileged Give extended privileges to this container
... ...
意思就是:“ - 享有特权的将扩展权限授予此容器”,这样一来解决的办法就出来了,在启动容器的时候加上这个选项参数即可!
[-> ~ Scong ] docker run --privileged -itd -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup centos /usr/sbin/init
-e:设置环境变量
-v:将容器内的内核与本地的内核文件进行绑定
/ usr / sbin目录/初始化:让宿主机重启立刻生效
扫描二维码关注公众号,回复:
2863487 查看本文章
![](/qrcode.jpg)
本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!