美文网首页
将Linux的系统制作成Docker镜像

将Linux的系统制作成Docker镜像

作者: yanlong107 | 来源:发表于2021-12-16 11:07 被阅读0次

    前言

    DockerHub 上有很多的镜像,可以满足大部分的需求。这种情况我们就可以直接通过docker pull ** 从DockerHub上获取对应的镜像。
    当然还有一些情况,我们需要的镜像DockerHub上不存在,例如:Linux信创的环境,在DockerHub上就很难知道对应的镜像,如果需要这种镜像的话就需要通过运行的系统来制作镜像了。

    具体步骤

    1. 对系统进行压缩

    • 查看系统目录
    $ 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、也可以直接选择需要压缩的目录
    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
    $ 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 不能少

    $ docker run -it -d **** /bin/bash
    

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

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

    相关文章

      网友评论

          本文标题:将Linux的系统制作成Docker镜像

          本文链接:https://www.haomeiwen.com/subject/tvmpfrtx.html