关于docker使用的几个小问题(二)

小说:qq钱包提现要手续费吗作者:伯徒更新时间:2018-11-20字数:88718

不等李亨说完,李适一把便将腰间的佩玉扯下,这是他周岁时李亨送给他的抓周礼物,十年来一直佩戴在腰间,他几次想摘下,都被他**劝住了,毕竟这也是父皇的意思,此时,李适的血涌上了头顶,他不顾一切地将玉佩狠狠往地上一摔,‘啪’的一声,玉佩被摔得粉碎,这就意味着他们祖孙之情就和这玉佩一样,从此化为粉尘。

电脑打汉字赚钱软件

崔玄微眼睛一亮,忽然说道:“这是个好主意,龙宫里面收藏丰富,肯定有我们要的东西呢。只是不知道龙宫该怎么走?龙王到底给不给?”
感受到两个大男人的目光有异,丽莎顿时惊呼一声,抱着胸口,跑进了房间去。

李林甫给萧炅使了个眼色,萧炅立刻上前道:“陛下,大火是因为有人放孔明灯引发,烧着了市署,但万年县杨县令及时率衙役赶到,在他们奋勇扑救下,市署只烧了一角,十三间屋舍过火,店铺一家也没有烧着,无人员伤亡,只是一些账簿被烧毁了。”

关于docker使用的几个小问题(二)


很久没写博客了,集中写几个比较有意思的小问题。

一、CentOS容器没有service命令

这是因为我们从docker官方镜像仓库中pull的最新CentOS镜像都是centos7.4 Redhat-release,Redhat已经通过systemclt命令取代了service命令,所以如果需要运行service命令,可以通过systemctl来替换。如以下这两条关于Apache的命令是等效的。

service httpd status
systemctl status httpd

有的同学会说,为什么我本地装的centos可以使用service?ok,如果一定要用service也不是没有解决方案:

yum install -y initscripts.x86_64

把它装上就可以用了。

二、CentOS容器没有pidof命令

这是因为官方的镜像是精简版的,没有提供pidof所在的指令集,如果需要使用,也是需要安装的:

yum install -y redhat-lsb

三、 Failed to get D-Bus connection: Operation not permitted

当我们在CentOS7上执行systemctl命令就会产生这个错误,上面两个问题其实和这个问题原因产生的是一致的,尤其是关于这个问题,网上给出诸多说法,我来给大家一个官方的说法。首先不要急,我先给性子急的同学几个解决方案:

方案一:

docker run -d -e "container=docker" --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup --name centos7 centos /usr/sbin/init
###对安全问题比较关心的同学,建议将--privileged=true替换为--cap-add=SYS_ADMIN

方案二:

docker run -ti --privileged centos init
#或者
docker run -ti --privileged centos /usr/lib/systemd/systemd
#或者
docker run -ti --cap-add=SYS_ADMIN cents init

大家会说,方案二怎么卡住了,没关系,不用管它,重启一个连接exec到容器中即可,原来的窗口关掉就行。

方案三:

FROM fedora:rawhide
MAINTAINER “Dan Walsh” <dwalsh@redhat.com>
ENV container docker
RUN yum -y update; yum clean all
RUN 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”]

写一个dockerfile,这段dockerfile是有来历的,它的作用就是生成一个可以调用systemctl的CentOS容器,同时删除了一些不必要的系统进程。在上面的指令中,我们经常看到/sbin/init,它是什么东东呢:

下载赚法软件下载 2018农村干什么赚钱 微信每天能转多少钱 一个月赚十万多么 薅羊毛手机卡 网络兼职小说录入 手机软件试玩兼职 小米兼职官网

编辑:伯卓扁

我要说两句: (0人参与)

发布