博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http://www.cnblogs.com/2018/p/4633940.html
阅读量:6621 次
发布时间:2019-06-25

本文共 1362 字,大约阅读时间需要 4 分钟。

hot3.png

 这里有个统计,docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,那我们如何自己从头开始做个定制的镜像呢?

 

对,找官方文档 ,这里说明的很清楚了

 

试验如下:在centos7机器上做centos镜像

直接参考这个脚本

./mkimage-yum.sh -y /etc/yum.conf centos7

执行如上脚本,成功后,就可以看到镜像了【docker images】,概要说明一下,主要是如下几步:

1.tmp目录下建立临时目录和文件系统

2.使用yum安装相关的软件包

3.软件包安装和信息定制

4.tar打包

5.清理

建立目录结构[rootfs]

 

target=0028.png?rev=2.6.1006D.png?rev=2.6.1006B.png?rev=2.6.10074.png?rev=2.6.10065.png?rev=2.6.1006D.png?rev=2.6.10070.png?rev=2.6.12212.png?rev=2.6.10064.png?rev=2.6.12212.png?rev=2.6.12212.png?rev=2.6.10074.png?rev=2.6.1006D.png?rev=2.6.10070.png?rev=2.6.10064.png?rev=2.6.10069.png?rev=2.6.10072.png?rev=2.6.1(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 "0079.png?rev=2.6.10075.png?rev=2.6.1006D.png?rev=2.6.10063.png?rev=2.6.1006F.png?rev=2.6.1006E.png?rev=2.6.10066.png?rev=2.6.10069.png?rev=2.6.10067.png?rev=2.6.10022.png?rev=2.6.12212.png?rev=2.6.12212.png?rev=2.6.10069.png?rev=2.6.1006E.png?rev=2.6.10073.png?rev=2.6.10074.png?rev=2.6.10061.png?rev=2.6.1006C.png?rev=2.6.1006C.png?rev=2.6.10072.png?rev=2.6.1006F.png?rev=2.6.1006F.png?rev=2.6.10074.png?rev=2.6.1003D.png?rev=2.6.10022.png?rev=2.6.1yumconfig"−−installroot="target" --releasever=/ --setopt=tsflags=nodocs \

    --setopt=group_package_types=mandatory -y groupinstall Core

yum -c "0079.png?rev=2.6.10075.png?rev=2.6.1006D.png?rev=2.6.10063.png?rev=2.6.1006F.png?rev=2.6.1006E.png?rev=2.6.10066.png?rev=2.6.10069.png?rev=2.6.10067.png?rev=2.6.10022.png?rev=2.6.12212.png?rev=2.6.12212.png?rev=2.6.10069.png?rev=2.6.1006E.png?rev=2.6.10073.png?rev=2.6.10074.png?rev=2.6.10061.png?rev=2.6.1006C.png?rev=2.6.1006C.png?rev=2.6.10072.png?rev=2.6.1006F.png?rev=2.6.1006F.png?rev=2.6.10074.png?rev=2.6.1003D.png?rev=2.6.10022.png?rev=2.6.1yumconfig"−−installroot="target" -y clean all

...

打包

tar --numeric-owner -c -C "0074.png?rev=2.6.10061.png?rev=2.6.10072.png?rev=2.6.10067.png?rev=2.6.10065.png?rev=2.6.10074.png?rev=2.6.10022.png?rev=2.6.1002E.png?rev=2.6.1007C.png?rev=2.6.10064.png?rev=2.6.1006F.png?rev=2.6.10063.png?rev=2.6.1006B.png?rev=2.6.10065.png?rev=2.6.10072.png?rev=2.6.10069.png?rev=2.6.1006D.png?rev=2.6.10070.png?rev=2.6.1006F.png?rev=2.6.10072.png?rev=2.6.10074.png?rev=2.6.12212.png?rev=2.6.1target".|dockerimport−name:$version

docker run -i -t 006E.png?rev=2.6.10061.png?rev=2.6.1006D.png?rev=2.6.10065.png?rev=2.6.1003A.png?rev=2.6.1name:version echo success

清理

rm -rf "$target"

 

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

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

转载于:https://my.oschina.net/u/3371661/blog/1548989

你可能感兴趣的文章
Factom(公证通)--基于区块链的存证系统
查看>>
prezi,mfc,toefl,java
查看>>
Software AG成功整合Terracotta
查看>>
centos中进程管理工具
查看>>
【Prince2科普】Prince2的七大原则(7)
查看>>
从【BZOJ4173】谈做题技巧
查看>>
学JS的心路历程-函式(六)其余参数及预设参数
查看>>
[Ting's笔记Day1] Ruby on Rails练习- MacOS安装篇
查看>>
TJOI2015 旅游
查看>>
监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息
查看>>
多继承
查看>>
.net4 DataAnnotations小试(转帖)
查看>>
怎么看性能瓶颈?
查看>>
解决淘淘商城“拦截器处理请求”的一个错误
查看>>
【javascript基础】1、基本概念
查看>>
IE setAttribute frameborder 相关
查看>>
Windows Phone 8.1 Tiles, Notifications and Action Center
查看>>
P2x与P3x的区别
查看>>
setTimeout()传带有参数的函数
查看>>
webstorm for mac
查看>>