首页 > 代码库 > Systemd在docker容器中使用
Systemd在docker容器中使用
以centos 7.2容器中运行httpd服务为例子,默认下直接运行
[root@b0b2a3ed40d6 /]# systemctl start httpd.service Failed to get D-Bus connection: Operation not permitted
在网上找到的解决方法:
创建Dockerfile创建一个基础镜像
FROM centos:7.2 MAINTAINER hpsfpcca@163.com ENV container docker RUN yum -y update && yum clean all && yum -y install systemd && yum clean all && (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"]
[root@dev-ops ~]# docker build -t centos_test_systemctl .
2.在上面镜像的基础上再构建apache镜像
FROM centos_test_systemctl MAINTAINER hpsfpcca@163.com RUN yum -y install httpd && yum clean all && systemctl enable httpd.service EXPOSE 80 CMD ["/usr/sbin/init"]
[root@dev-ops ~]# docker build -t centos_test_httpd .
3.然后就启动容器
[root@dev-ops ~]# docker run --privileged -it -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 centos_test_httpd
本文出自 “网络收藏夹” 博客,请务必保留此出处http://liyaoyi.blog.51cto.com/442933/1857052
Systemd在docker容器中使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。