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=(mktempd−−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=”

target” –releasever=/ –setopt=tsflags=nodocs \

    –setopt=group_package_types=mandatory -y groupinstall Core

yum -c “yumconfig“−−installroot=”

target” -y clean all

打包

tar –numeric-owner -c -C “target“.|dockerimport

name:$version

docker run -i -t name:

version echo success

清理

rm -rf “$target”

如果我们需要自己的安全增强软件等定制,只需要在第2步将我们的内容合并进去即可

生成的镜像可以作为我们工作的基础,当然你也可以push到开源社区

MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

MariaDB 作为 Mysql 的一个分支,在开源项目中已经广泛使用,例如大热的 openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必...

阅读全文

修改使用Alpine Linux的Docker容器的时区

适用对象 使用 Alpine Linux 发行版的 Docker 镜像容器。仅仅适用于没有安装uclibc的系统。 修改步骤 进入容器命令行 # docker exec -it contain...

阅读全文

CentOS下shadowsocks-libev一键安装脚本

本脚本适用环境: 系统支持:CentOS 内存要求:≥128M 日期:2018 年 06 月 01 日 关于本脚本: 一键安装 libev 版的 Shadowsocks 最新版本。该版本的特点...

阅读全文

欢迎留言