前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将Linux的系统制作成Docker镜像

将Linux的系统制作成Docker镜像

作者头像
艳龙
发布2021-12-16 18:09:49
10.4K0
发布2021-12-16 18:09:49
举报
文章被收录于专栏:yanlongli_艳龙yanlongli_艳龙

前言

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

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

具体步骤

1. 对系统进行压缩

  • 查看系统目录
代码语言:javascript
复制
$ cd /
$ ls
bin  boot  data  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

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

  • tar 完成系统压缩包 1、可以选择/跟目录,然后--exclude排除不需要的目录 2、也可以直接选择需要压缩的目录
代码语言:javascript
复制
tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .

or 

tar -cvpf /tmp/system.tar bin data  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  root  sbin  srv  tmp  usr  var

参数说明:

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

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

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

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

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

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

tar 命令更多参数可参考:

Linux tar 命令

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

2. 导入docker

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

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

  • tar 导入docker
代码语言:javascript
复制
$ docker import /tmp/system.tar linux:10.1
// linux:10.1  是自定义的镜像和tag名称

or 

cat /tmp/system.tar | docker import - linux:10.1

运行镜像容器

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

代码语言:javascript
复制
$ docker run -it -d **** /bin/bash

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

参考文章:

Docker 镜像导出和导入(https://links.jianshu.com/go?to=https%3A%2F%2Fyeasy.gitbook.io%2Fdocker_practice%2Fcontainer%2Fimport_export)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/12/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 具体步骤
    • 1. 对系统进行压缩
      • 2. 导入docker
        • 运行镜像容器
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档