Centos 码头指示灯中心7:'/bin/sh-c系统控制启动httpd.service';返回了一个非零代码:1
我开始使用Centos 码头指示灯中心7:'/bin/sh-c系统控制启动httpd.service';返回了一个非零代码:1,centos,docker,lamp,devops,Centos,Docker,Lamp,Devops,我开始使用docker来自动化环境,然后我尝试构建一个简单的LAMP,因此Dockerfile如下所示: 来自centos:7 环境容器=码头工人 运行yum-y swap--删除systemd container systemd container libs--安装systemd systemd libs 运行yum-y更新;百胜全洁\ (cd/lib/systemd/system/sysinit.target.wants/;for i in*;do[$i==systemd-tmpfiles-
docker
来自动化环境,然后我尝试构建一个简单的LAMP
,因此Dockerfile
如下所示:
来自centos:7
环境容器=码头工人
运行yum-y swap--删除systemd container systemd container libs--安装systemd systemd libs
运行yum-y更新;百胜全洁\
(cd/lib/systemd/system/sysinit.target.wants/;for i in*;do[$i==systemd-tmpfiles-setup.service]| | rm-f$i;完成)\
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/*;
卷[“/sys/fs/cgroup”]
运行yum-y update&&yum全部清除
运行yum-y install firewalld httpd mariadb服务器mariadb php mysql php gd php pear php xml php bcmath php mbstring php mcrypt php php gettext
#启用服务
运行systemctl enable httpd.service
运行systemctl enable mariadb.service
#启动服务
运行systemctl启动httpd.service
运行systemctl start mariadb.service
#打开防火墙端口
运行防火墙cmd--permanent--addservice=http
运行防火墙cmd--永久--添加服务=https
运行防火墙cmd——重新加载
暴露80
CMD[“/usr/sbin/init”]
所以当我建立这个形象的时候
docker build-t myimage。
然后,当我运行代码时,会出现以下错误:
The command '/bin/sh -c systemctl start httpd.service' returned a non-zero code: 1
Failed to get D-Bus connection: No connection to service manager.
当我进入交互模式时(在运行systemctl start httpd.service
并重新启动映像后跳过命令):
在尝试手动启动服务httpd
后,我发现以下错误:
The command '/bin/sh -c systemctl start httpd.service' returned a non-zero code: 1
Failed to get D-Bus connection: No connection to service manager.
所以,我不知道我做错了什么?首先,欢迎来到Docker!:-)大量的Docker教程和文档都是围绕Ubuntu容器编写的,但我也喜欢Centos 好的,这里有几件事要谈:
systemd
的Docker容器,它们似乎需要额外的权限才能运行,即使这样,也需要大量额外的配置才能让它们正常工作。红帽队不确定这是在哪里
如果你想试着让它工作,但我已经玩了好几次,在过去的几周内,还没有得到它的工作docker compose
(,)的工具来创建单用途docker容器
在上面的例子中,您有两个服务,一个web服务器和一个数据库服务器。因此,两个Docker容器应该工作良好,通过数据库网络连接连接在一起。以下是一些例子:
systemd
来管理它们,因为Docker守护进程管理每个容器就像管理Unix进程一样。当进程终止时,Docker容器终止,这一点很重要,因为Docker服务器监视容器并可以自动重新启动它们,或者通知您这看起来更像是一个完美的例子,我的。它可以很容易地解释“systemctl start httpd.service”,而无需激活SystemD。我对一些数据库服务也做了同样的操作,但并不是特别针对mariadb.service,可能您可以尝试一下。我的理解是docker不自动支持systemd,但您可以使用正确的docker文件使其工作。看见这似乎意味着需要一个特定的图像,但我不这么认为,鉴于我在另一个页面上看到的,我应该把它作为书签!不管怎样,我自己也没试过,因为我要回LXC了。Systemd与LXC CentOS容器一起开箱即用,如果需要,您甚至可以
yum安装openssh server
和SSH到容器中。