您现在的位置是:首页 > 文章详情

Docker部署centos7容器

日期:2018-07-15点击:527

操作系统:centos7.2.1511
centos镜像:centos7.2.1511

安装docker

yum -y install docker

启动docker

systemctl start docker

发现启动不了,报错:

Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux ...enabled=false)

修改配置文件

vim /etc/sysconfig/docker OPTIONS='--selinux-enabled=false'

再次启动服务

systemctl start docker systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-07-17 05:48:54 CST; 20s ago Docs: http://docs.docker.com

下载centos7.2镜像

docker pull daocloud.io/library/centos:centos7.2.1511 docker images REPOSITORY TAG IMAGE ID CREATED SIZE daocloud.io/library/centos centos7.2.1511 0a2bad7da9b5 8 months ago 195 MB

Systemd整合

因为 systemd 要求 CAPSYSADMIN 权限,从而得到了读取主机 cgroup 的能力,CentOS7 中已经用 fakesystemd 代替了 systemd 来解决依赖问题,如果仍然希望使用 systemd,可用下面的 Dockerfile

cat > Dockerfile <<EOF FROM 0a2bad7da9b5 MAINTAINER Testder 10000@testder.cn ENV container docker RUN yum -y swap -- remove fakesystemd -- install systemd systemd-libs RUN yum -y update; 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"] EOF

构建基础镜像

docker build --rm -t centos7.2 .

后台运行Centos容器

为了运行一个包含 systemd 的容器,您需要使用–privileged选项, 并且挂载主机的 cgroups 文件夹。 下面是运行包含 systemd 容器的示例命令:

docker run -itd --name centos7.2 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro centos7.2 641f23dce23355729dfb8e99e5df467574eb116afbb1c50e71e272e952451d03

使用exec进入Centos容器,systemd启动成功

docker exec -it centos7.2 /bin/bash [root@641f23dce233 /]# yum -y install httpd [root@641f23dce233 /]# systemctl start httpd
原文链接:https://yq.aliyun.com/articles/681227
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章