最近开始研究docker,如果想要自己创建个镜像,必须从Docker Hub上面获取一个基础镜像来创建;对于我们公司是定制的ISO,我就在想有没有办法把ISO转换成Docker格式,然后上传到Docker Hub上作为基础镜像使用。
1.准备阶段
首先,在一台虚拟机中安装好需要转换的ISO镜像,本文以CentOS 7.2为例;
其次,进入装好的系统,到根目录下面我们可以看到如下文件夹:
1
2
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
其中/proc、/sys、/run、/dev这几个目录都是系统启动时自动生成的,虽然也属于文件系统一部分,但是他们每次开机都会有变化,所以打包的时候就应该忽略它们。
2.打包系统
直接运行如下命令
# tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .
命令运行完成后再/tmp目录生成了一个system.tar文件,如果tar文件太大的话,也可以继续压缩成tar.gz格式。
就可以把打包好的文件导入到docker了。
3.导入docker
tar文件导入到docker方法很多,下面两种办法测试了都可以。
cat system.tar |docker import - centos:7.2
docker import system.tar centos:7.2
1
2
3
4
5
6
7
[root@docker ~]# du -sh system.tar
1.2G system.tar
[root@docker ~]# cat system.tar |docker import - centos:7.2
sha256:72cc6a6d481b512c04d7d1012bc6e50f54c856bdbd87b25c0b7aed9765af94c1
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.2 72cc6a6d481b 6 seconds ago 1.197 GB
4.导入成功后,接下去就可以运行容器了.
# docker run -t -i centos:7.2 /bin/bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@docker ~]# docker run -it --rm centos:7.2 /bin/bash
[root@476281ec40ee /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 6 bytes 508 (508.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 508 (508.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@476281ec40ee /]# exit
exit
[root@docker ~]#
镜像做好之后就可以push到docker hub上了,不过我发现做好的镜像还是挺大的有1.2G,这样push的时候就会很慢很慢。
本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/2064111,如需转载请自行联系原作者
微信关注我们
原文链接:https://yq.aliyun.com/articles/517880
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源优质分享Android(本站安卓app)
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
Mario,低调大师唯一一个Java游戏作品
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Java Development Kit(Java开发工具)
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
Sublime Text 一个代码编辑器
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。