CentOS8.1已经发布了,为了测试一下如何,所以尝试在CoreOs系统下用docker 拉取了一下镜像,结果自然是不带systemd管理功能的。看了官方说明,是需要用Dockerfile来重新构建一个定制化镜像,所以又查找了一下相关搜索内容。 结果, 大部分文章都默认操作者知道Dockerfile如何使用,只说了其内容如何编写。
这里做一个记录,算是非常小白的教程,用以后继应用的参考。
1. Dockerfile 是一个文本文档, 名字就是这个。 里面记录的是如何构建docker镜像的步骤。 可以是以我们pull下来的镜像为基础,例如这里所说的 centos,也可以从基础,一步一步构建完整的镜像。
2. 要使用这个文档,最好的办法是见一个目录,在该目录下编写,然后在该目录下运行镜像的重构操作。
命令:~# mkdir /home/centos8
命令:~# vi Dockerfile
将coreos docker 官网的文档内容cp进去,保存
FROM centos:8
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"]
3.进入文件夹,运行重构操作
命令:~# cd /home/centos8
命令:~# docker build --rm -t centos8-systemd . 注意,这后面有一个点符号(.)
4. 利用构建好的镜像开启容器
官方说明里面指出,为了使用systemd运行容器,您将需要从主机挂载cgroups卷
docker run -tid -v /sys/fs/cgroup:/sys/fs/cgroup:ro centos8-systemd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)