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 $(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 "$yum_config" --installroot="$target" --releasever=/ --setopt=tsflags=nodocs \

--setopt=group_package_types=mandatory -y groupinstall Core

yum -c "$yum_config" --installroot="$target" -y clean all

...

打包

tar --numeric-owner -c -C "$target" . | docker import - $name:$version

docker run -i -t $name:$version echo success

清理

rm -rf "$target"

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

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

Docker 从零开始制作基础镜像[centos]的更多相关文章

  1. Docker制作基础镜像

    Docker镜像制作 方式一:手动运行一个容器,做好所有配置,然后把容器提交成一个镜像 方式二:使用DockerFile 示例1:做一个yum安装的nginx镜像 - 运行并进入一个centos容器: ...

  2. Docker 安装入门 --基础镜像

    安装Docker1.Docker命令安装 yum install docker //安装docker包 service docker start //设置服务启动  chkconfig docker ...

  3. Docker commit 制作weblogic镜像

    第一:前提条件 1.本机必须已经安装了docker 容器 2.pull 一个基础的镜像  如图:rastasheep/ubuntu-sshd 第二:利用docker commit  命令 将容器的状态 ...

  4. docker从零开始(一)centos获取安装docker-ce

    卸载旧版本 较旧版本的Docker被称为docker或docker-engine.如果已安装这些,请卸载它们以及相关的依赖项. centos7 yum安装的docker就是docker-engine ...

  5. 使用 febootstrap 制作自定义基础镜像

    转载自:https://cloud.tencent.com/developer/article/1454524 文章目录1.febootstrap 介绍2.环境.软件准备3.febootstrap 安 ...

  6. docker镜像制作---jdk7+tomcat7基础镜像

    1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm y ...

  7. Docker如何制作镜像-Dockerfile的使用

    1:什么是Dockerfile Dockerfile是一个文本文档,可以通过docker build 命令构建成一个镜像. 我们可以在Dockerfile中定义一系列的命令,构建出我们想要的镜像. 想 ...

  8. linux 创建docker基础镜像

    通过Dockerfile创建镜像时,一般都是基于 Docker Hub 提供的官方镜像.以下分别介绍在ubuntu16和centos7 两个系统上创建个人私有基础镜像的方法.  一.ubuntu16创 ...

  9. 中标麒麟龙芯平台--docker基础镜像制作

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 的出现为开发人员和运维人员带来了极大的便利.Docker在X86下常见的发行版Linux如Ub ...

随机推荐

  1. geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 问题探索 采样说明 实现方案 总结 一.前言     ...

  2. 缓存Cookie、session、localStorage的区别

    cookie Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文 ...

  3. 为SharePoint Server 2013 建立搜索爬行

    当搭建好SharePoint Server 2013 之后系统内的爬行信息是空白的,因此需要进行搜索爬行行为的开启. 确认系统上的服务 首先进入到系统的服务中services.msc 确保如下的Sha ...

  4. 附录C 编译安装Hive

    如果需要直接安装Hive,可以跳过编译步骤,从Hive的官网下载编译好的安装包,下载地址为http://hive.apache.org/downloads.html . C.1  编译Hive C.1 ...

  5. java多线程--信号量Semaphore的使用

    Semaphore可以控制某个共享资源可被同时访问的次数,即可以维护当前访问某一共享资源的线程个数,并提供了同步机制.例如控制某一个文件允许的并发访问的数量. 例如网吧里有100台机器,那么最多只能提 ...

  6. gradle中使用嵌入式(embedded) tomcat, debug 启动

    在gradle项目中使用embedded tomcat. 最开始部署项目需要手动将web项目打成war包,然后手动上传到tomcat的webapp下,然后启动tomcat来部署项目.这种手动工作通常还 ...

  7. 使用 PowerShell 自动化 CloudServices 发布

    在软件的开发过程中,自动化的编译和部署能够带来很多的优势.如果可以通过一个脚本实现软件的自动化部署,那么就可以节省大量的时间去做其它事情. 下面介绍如何将云应用程序通过 PowerShell 自动发布 ...

  8. 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件

    表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验.网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没有多大的问题,但是在实际工作中,表单校验有可能有比较复杂的个 ...

  9. 记一个简单的sql查询

    在我们做各类统计和各类报表的时候,会有各种各样的查询要求.条件 这篇主要记录一个常见的统计查询 要求如下: 统计一段时间内,每天注册人数,如果某天没有人注册则显示为0 现在建个简单的表来试试 建表语句 ...

  10. 基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明

    上一章已经简单介绍了CKEditor控件可以编写C#代码,然后可以通过ajax去调用,但是要在网页上面编写所有C#后台逻辑,肯定痛苦死了,不说实现复杂的逻辑,就算实现一个简单增删改查,都会让人头痛欲裂 ...