Docker 从零开始制作基础镜像[centos]
2016-06-21 21:00
871 查看
Docker 从零开始制作基础镜像[centos]
http://www.oschina.net/news/62897/docker-hub-contains-high-risk-vulnerabilities 这里有个统计,docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,那我们如何自己从头开始做个定制的镜像呢?
对,找官方文档 http://docs.docker.com/articles/baseimages/,这里说明的很清楚了
试验如下:在centos7机器上做centos镜像
直接参考这个脚本
https://raw.githubusercontent.com/docker/docker/master/contrib/mkimage-yum.sh
./mkimage-yum.sh -y /etc/yum.conf centos7
执行如上脚本,成功后,就可以看到镜像了【docker images】,概要说明一下,主要是如下几步:
1.tmp目录下建立临时目录和文件系统
2.使用yum安装相关的软件包
3.软件包安装和信息定制
4.tar打包
5.清理
target=(mktemp−d−−tmpdir(mktemp−d−−tmpdir(basename $0).XXXXXX)
set -x
mkdir -m 755 "$target"/dev
mknod -m 600 "$target"/dev/console c 5 1
mknod -m 600 "$target"/dev/initctl p
mknod -m 666 "$target"/dev/full c 1 7
mknod -m 666 "$target"/dev/null c 1 3
mknod -m 666 "$target"/dev/ptmx c 5 2
mknod -m 666 "$target"/dev/random c 1 8
mknod -m 666 "$target"/dev/tty c 5 0
mknod -m 666 "$target"/dev/tty0 c 4 0
mknod -m 666 "$target"/dev/urandom c 1 9
mknod -m 666 "$target"/dev/zero c 1 5
# amazon linux yum will fail without vars set
if [ -d /etc/yum/vars ]; then
mkdir -p -m 755 "$target"/etc/yum
cp -a /etc/yum/vars "$target"/etc/yum/
fi
--setopt=group_package_types=mandatory -y groupinstall Core
yum -c "yumconfig"−−installroot="yumconfig"−−installroot="target" -y clean all
...
docker run -i -t name:name:version echo success
如果我们需要自己的安全增强软件等定制,只需要在第2步将我们的内容合并进去即可
生成的镜像可以作为我们工作的基础,当然你也可以push到开源社区
http://www.oschina.net/news/62897/docker-hub-contains-high-risk-vulnerabilities 这里有个统计,docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,那我们如何自己从头开始做个定制的镜像呢?
对,找官方文档 http://docs.docker.com/articles/baseimages/,这里说明的很清楚了
试验如下:在centos7机器上做centos镜像
直接参考这个脚本
https://raw.githubusercontent.com/docker/docker/master/contrib/mkimage-yum.sh
./mkimage-yum.sh -y /etc/yum.conf centos7
执行如上脚本,成功后,就可以看到镜像了【docker images】,概要说明一下,主要是如下几步:
1.tmp目录下建立临时目录和文件系统
2.使用yum安装相关的软件包
3.软件包安装和信息定制
4.tar打包
5.清理
建立目录结构[rootfs]
target=(mktemp−d−−tmpdir(mktemp−d−−tmpdir(basename $0).XXXXXX)
set -x
mkdir -m 755 "$target"/dev
mknod -m 600 "$target"/dev/console c 5 1
mknod -m 600 "$target"/dev/initctl p
mknod -m 666 "$target"/dev/full c 1 7
mknod -m 666 "$target"/dev/null c 1 3
mknod -m 666 "$target"/dev/ptmx c 5 2
mknod -m 666 "$target"/dev/random c 1 8
mknod -m 666 "$target"/dev/tty c 5 0
mknod -m 666 "$target"/dev/tty0 c 4 0
mknod -m 666 "$target"/dev/urandom c 1 9
mknod -m 666 "$target"/dev/zero c 1 5
# amazon linux yum will fail without vars set
if [ -d /etc/yum/vars ]; then
mkdir -p -m 755 "$target"/etc/yum
cp -a /etc/yum/vars "$target"/etc/yum/
fi
软件包安装和信息定制
yum -c "yumconfig"−−installroot="yumconfig"−−installroot="target" --releasever=/ --setopt=tsflags=nodocs \--setopt=group_package_types=mandatory -y groupinstall Core
yum -c "yumconfig"−−installroot="yumconfig"−−installroot="target" -y clean all
...
打包
tar --numeric-owner -c -C "target".|dockerimport−target".|dockerimport−name:$versiondocker run -i -t name:name:version echo success
清理
rm -rf "$target"如果我们需要自己的安全增强软件等定制,只需要在第2步将我们的内容合并进去即可
生成的镜像可以作为我们工作的基础,当然你也可以push到开源社区
相关文章推荐
- [Docker]核心概念
- Building Good Docker Images
- 用Dockerfile构建docker image
- 在docker 中配置hadoop1.2.1 cluser
- 从头开始搭建分布式日志平台的docker环境
- DOCKER 为新启用的容器配置外网IP
- Docker的安装,包括内核的升级(centos6内核太低需要升级到3.1以上)
- 使用DockerFile创建ubuntu下的tomcat镜像
- Ubuntu 16.04 LTS安装Docker 1.11.1
- docker 命令汇总
- Centos 7: 改变docker的image存放目录
- 开始试用docker的swarm模式
- docker + swarm 集群
- XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化
- docker exec 报错 Unsupported: Exec is not supported by the lxc driver
- docker 私有仓库查询
- docker 私有仓库查询
- docker 私有仓库查询
- docker 创建本地镜像服务器
- docker 创建本地镜像服务器