0
点赞
收藏
分享

微信扫一扫

将Linux环境制作成Docker镜像

笑望叔叔 2022-04-01 阅读 29
运维

前言

DockerHub 上有很多的镜像 可以满足大部分的需求。这种情况我们就可以直接通过 docker pull ** 从 DockerHub 上获取对应的镜像
当然还有一些情况 我们需要的镜像 DockerHub 上不存在

例如:Linux信创的环境 在 DockerHub 上就很难知道对应的镜像 如果需要这种镜像的话 就需要通过运行的系统来制作镜像了

具体步骤

对系统进行压缩

  • 查看系统目录
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 这几个目录都是系统启动时自动生成的 虽然也属于文件系统一部分

但是他们每次开机都会有变化 所以打包的时候就应该忽略它们

/media /mnt /tmp 目录也可以忽略

  • tar 完成系统压缩包

    • 可以选择 / 跟目录 然后 --exclude 排除不需要的目录
    • 也可以直接选择需要压缩的目录
cd /

tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=run --exclude=dev --exclude=boot .

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

参数说明:

  • c 建立新的备份文件
  • v 显示指令执行过程
  • p 用原来的文件权限还原文件
  • f 指定备份文件
  • z 通过 gzip 指令处理备份文件

导入 docker

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

Docker 默认安装的情况下 会使用 /var/lib/docker/ 目录作为存储目录 用以存放拉取的镜像和创建的容器等
这个路径是系统存储目录 一般空间会比较小 如果创建的容器很大那系统空间很快就没有了
这里记录下将 docker 的默认路径修改为数据盘

操作方案
  1. 查看磁盘信息 选择一个磁盘空间较大的做为 docker 的默认安装位置
df -h
  1. 查看 docker 当前的存储路径
docker info | grep -i docker

Docker Root Dir: /data/docker
  1. 修改配置文件 /etc/docker/daemon.json
{
    ...
    "data-root": "/data/docker/",
    ...
    
}
  1. 重启服务
systemctl restart docker
  1. 查看确认 docker 当前的存储路径
docker info
  • 继续导入 docker
cat /tmp/system.tar | docker import - linux:8.3

### linux:8.3  是 自定义的镜像 和 tag 名称

运行镜像容器

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

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

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

举报

相关推荐

0 条评论