将Linux的系统制作成Docker镜像

将Linux的系统制作成Docker镜像,第1张

DockerHub 上有很多的镜像,可以满足大部分的需求。这种情况我们就可以直接通过 docker pull ** 从DockerHub上获取对应的镜像。

当然还有一些情况,我们需要的镜像DockerHub上不存在,例如:Linux信创的环境,在DockerHub上就很难知道对应的镜像,如果需要这种镜像的话就需要通过运行的系统来制作镜像了。

/proc 、 /sys 、 /run 、 /dev 这几个目录都是系统启动时自动生成的,虽然也属于文件系统一部分,但是他们每次开机都会有变化,所以打包的时候就应该忽略它们

参数说明:

-c或--create 建立新的备份文件

-f<备份文件>或--file=<备份文件>指定备份文件

-p或--same-permissions 用原来的文件权限还原文件

-v或--verbose 显示指令执行过程

z或--gzip或--ungzip 通过gzip指令处理备份文件

--numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称

tar 命令更多参数可参考:

Linux tar 命令

Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解

导入docker之前,最好修改下docker的默认存储路径。

具体修改方法可参考: Linux 下修改Docker默认存储路径

tips: 运行导入的镜像的时候必须带command,否则启动报如下错误. 最后的/bin/bash 不能少

提示: 制作的镜像文件太大,会导致启动容器时候失败: Getting the final child's pid from pipe caused "EOF"

参考文章:

[Docker 镜像导出和导入] https://yeasy.gitbook.io/docker_practice/container/import_export

1、首先在 Linux 系统中打开终端,确认 U 盘路径:

执行完这条命令后会出现若干个盘的信息,其中识别U盘的一个比较直观的方式是看容量大小。假设U盘的路径是 \dev\sdb 。

2、umount U 盘:

3、格式化U盘:

如果U盘是空的可能格式化的过程会比较快,否则可能会比较慢。

4、使用 dd 命令制作系统盘:

该命令一般需要十分钟左右可以完成。

一、下载安装包

可以根据你的系统类型自行去官网下载,由于会有很多依赖关系,条件允许建议者通过网络yum的形式安装(具体 *** 作很多教程有)。

当然如果你是redhat6版本,那么可以直接在http://download.csdn.net/detail/u012209894/9669034下载,我已经上传了,

里面的包已经全部囊括其中,安装命令,有依赖关系的先安装好依赖关系。

二、使用工具备份成镜像

root用户下输入mondoarchive,然后就都是图形 *** 作了,鉴于要截图,所以使用的是远程连接工具,实际图的界面没这么丑。

[root@TIANCOM ~]# mondoarchive

See /var/log/mondoarchive.log for details of backup run.

Checking sanity of your Linux distribution

选择标记的存放在服务器本地硬盘里面就可以了,点击回车下一步出现让你选择存放路径,直接默认即可,回车下一步。

一般选择gzip作为压缩条件就可以了,随你自行选择吧,回车下一步。

压缩标准,最大压缩率,最小压缩率,一般压缩率,其实选择一般就可以了,最小的话用时会比较久点,这个也根据自己实际情况选择吧,如果你系统需要备份的太多,那么你最好选择最小,因为如果压缩不超出范围,会生成两个盘,相对来说就不好刻录还原了,回车下一步。

这里让你选择镜像文件的大小,一般直接默认dvd的4480M就好了,选择Ok回车下一步。

替你的镜像命名,随意命名即可,如果有多个镜像工具会在后面自行标记1-9来区分,ok下一步。

选择你要备份的目录,一般默认根目录即可,直接下一步。

选择你要排除的文件,一般镜像存放目录肯定排除不需要备份,还有根目录下的临时文件,或者一些其他不用的,具体根据实际情况和网上一些备份情况斟酌,注意在还原的时候你建立这些没有备份的文件。

默认选择下一步。

同上。

问你是否备份并且检测,点击yes下一步。

选择你的系统内核,redhat内核不要改动,其他系统有些需要改动,不用改的直接下一步。

选择yes就进去备份界面了。

该版本存在一个问题(从官网上来看估计是工具的bug),在你备份完系统之后(最好将系统所有软件都停止运行),通过genisoimage命令制作镜像时会报错。

经过查看/var/log/mondoarchive.log日志找到具体的genisoimage命令(通过mkisofs调用,二者之间的关系自行搜索 ),发现工具是想将/home/mondo.scrcath.xxfsca(各人最后的xxfsca不一样)制作成镜像的,但是isolinux.bin存在。于/home/mondo.scrcath.xxfsca/syslinux下,由于genisoimage命令只会在它需要制作的目录/home/mondo.scrcath.xxfsca下搜索,自然找不到啦,那么解决就简单了,直接将syslinux下的文件使用cp命令复制出来即可,然后重试制作(接报错的步骤即可,不需要重头再开始),等待几分钟,系统就会提示你制作成功了,然后到默认路径下查看是否生成iso文件即可。

至此你linux制作镜像就算成功了。

通过软通牒在win上刻录好光盘(如果你有两个iso文件当然刻录两个啦),能刻录的光驱会标记有DVD_RM等字样,刻录成功之后,在另外的机器上试着还原,有四个命令供你选择,一般选择第一个自动恢复(如果你不需要重新分区什么的)。

然后就是等待,十几分钟基本就搞定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6158779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存