Docker镜像的基本操作总结时间:2023-01-16 09:55:38 摘要 容器化是上个十年比较火的技术.现在看起来在进行总计有点晚了.不过linux是三十年前的,我依旧没有总结好道理是一样的.技术不在于新旧, 重要的是学习到原理. Docker的重要概念 RegistryimagecontainerDocker的核心机制在于从Registry里面拉取image然后基于image 运行起来一个 container来提供服务.image和container的关系很像software和process的关系. 镜像是有不可写的制度层构建的, 容器会运行成功时增加一个可写的最上层.基于Copy On Wirte的机制来显示高性能的IO(内容聚合性能损耗很大) Docker拉取加速 Docker默认是从 docker hub执行拉取镜像.重大节日重大会议时一般拉取经常失败.所以此时建议还是能够使用国内的镜像源进行加速.一般可以用如下几个: 名称 地址 中国官方镜像 https://registry.docker-cn.com 网易163镜像 http://hub-mirror.c.163.com 中科大镜像 https://docker.mirrors.ustc.edu.cn 七牛云加速器 https://reg-mirror.qiniu.com Systemd的方式进行设置 systemctl status docker或者docker 的默认配置文件路径, 比如:/usr/lib/systemd/system/docker.service修改配置文件: 在Service配置节增加内容:DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn/"然后执行命令systemctl daemon-reload && systemctl restart docker再进行相关docker pull 速度就会比较快了. 获取镜像库里面Docker的tag docker pull 之前可以进行 docker search但是docker search 是没有具体的tag的这里学习了下:https://www.zhoubotong.site/ 里面的文档.可以编写一个脚本,自己拉取所有的镜像tag方法其实是 利用 docker的原生API进行分析注意 需要优先安装一下jq 方便进行json序列化的处理yum install jq -y 获取tag的脚本 需要注意这个机器必须是能够上网的. 建议保存成类似于 gettags 一样的脚本名称. #!/bin/bashrepo_url=https://registry.hub.docker.com/v2/repositories/libraryimage_name=$1curl -L -s ${repo_url}/${image_name}/tags?page_size=1024 | jq '.results[]["name"]' | sed 's/\"//g' | sort -u 拉取验证 ./gettags rabbitmq 结果为:[root@NFSV3 deploy]# ./gettags rabbitmq 33.103.10.103.10.10-alpine3.10.10-management3.10.10-management-alpine3.10.113.10.11-alpine3.10.11-management Docker的导出与导入 Docker 其实有两种保存模式docker save 还有 docker export建议不要使用 docker export 他没有镜像层, 而是导出容器的运行时状态. 建议使用 docker save 进行导出. 可以使用 gzip命令同事进行压缩,减少网络损耗尽快导出导入的效率docker save kylinv10sp2_aarch64:xxxx |gzip > /kylinv10sp2_aarch64_xxxx.tar.gz复制到其他机器后执行docker load -i kylinv10sp2_aarch64_xxxx.tar.gz就很容易实现了镜像的备份与恢复.