将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

一、下载安装包

可以根据你的系统类型自行去官网下载,由于会有很多依赖关系,条件允许建议者通过网络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等字样,刻录成功之后,在另外的机器上试着还原,有四个命令供你选择,一般选择第一个自动恢复(如果你不需要重新分区什么的)。

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

1、启动Linux系统虚拟机的时候,点击“编辑虚拟机设置”--“CD/DVD”--“使用ISO镜像文件”点击“浏览”选择Linux系统的iso镜像。

2、进入Linux系统后,打开终端,用命令挂载光驱。

1

2

3

4

5

6

7

8

#创建一个目录用来挂载光驱

mkdir /mnt/cdrom

#挂载光驱

mount -t <a href="https://www.baidu.com/s?wd=iso9660&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdPHPhPyPbuWNhnAnzuH990ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWn3n1ndPHmY" target="_blank" class="baidu-highlight">iso9660</a>/dev/cdrom /mnt/cdrom

#挂载后,进入/mnt/cdrom就可以查看镜像文件了

cd /mnt/cdrom

#取消挂载使用如下命令:


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

原文地址:https://54852.com/yw/7146274.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存