你是否曾经遇到过需要在没有安装任何 Docker 客户端的机器上拉取容器镜像这样变态的需求呢?如果有,你当时又是如何解决的呢?今天我们就来给大家介绍几种另辟蹊径的方法来实现这样的需求。

使用 docker-drag 实现

根据官网介绍:docker-drag 是一个用于与 Docker Hub 交互的工具,并且不需 Docker 客户端本身支持。它主要是通过与 Docker HubHTTPS API 进行交互来实现相应功能。

项目地址:https://github.com/NotGlop/docker-drag

安装 docker-drag

docker-drag 其实就是一个 Python 脚本,目前版本总共才 168 行代码。你只需要去官网仓库直接下载就可以使用了,非常的简单。

$ wget https://raw.githubusercontent.com/NotGlop/docker-drag/master/docker_pull.py

使用 docker-drag

我们先来看一下官方给出的演示效果。

docker-drag 的使用也是非常简单的,基本上和 docke pull 命令使用方法一致。其主要是借助 PythonRequest 库和 HTTPS API 直接从仓库中拉取镜像,并保存为 TAR 文件。

# 直接在官方仓库拉取官方镜像$ python docker_pull.py nginx:alpine# 直接在官方仓库拉取三方镜像$ python docker_pull.py mysql/mysql-server:8.0# 直接在三方仓库拉取镜像$ python docker_pull.py mcr.microsoft.com/windows/nanoserver@sha256:ae443bd9609b9ef06d21d6caab59505cb78f24a725cc24716d4427e36aedabf2

镜像下载完成后,你可以直接使用 docker load -i 命令对 TAR 文件进行加载。由于不在依赖容器工具本身,在一些实际使用场景中,例如:CICD 流程。这个小工具或许能助你解决大问题哟!

使用 download-frozen-image-v2 实现

docker-drag 类似的工具,还有一个 SHELL 脚本的实现 download-frozen-image-v2,该脚本隶属于 Moby 项目。

项目地址:https://github.com/moby/moby

它的使用基本上和 docker-drag 类似,大致有如以下几步所示。

  1. 下载对应的脚本
$ wget https://raw.githubusercontent.com/moby/moby/master/contrib/download-frozen-image-v2.sh
  1. download-frozen-image-v2 脚本使用语法
download-frozen-image-v2.sh target_dir image[:tag][@digest] ...
  1. 一个完整的使用实例
# 下载 Ubuntu 容器镜像$ bash download-frozen-image-v2.sh ubuntu ubuntu:latest# download-frozen-image-v2 这里要稍为复杂点,需要自己手动打成 TAR 包$ tar -C 'ubuntu' -cf 'ubuntu.tar' .# 导入容器镜像$ docker load -i ubuntu.tar# 导入容器镜像完成后,运一个容器$ docker run --rm -ti ubuntu bashroot@1dd5e62113b9:/#

使用 dp 实现

dp 同样也是一个实现上述类似需求的小工具。dp 使用 Go 语言开发,天生具有良好的跨平台性。相对于前两个工具来说更容易在多平台上部署使用,而且 dp 还支持将多个镜像打包在一起。

项目地址:https://github.com/zhangguanzhang/dp/

安装 dp

dp 的安装非常简单,只需在官方仓库 Releases 页面直接下载各平台对应的版本,解压后即可使用。

使用 dp

dp 使用起来也是很容易的,下面我们就来看几个实例。

# 从官方仓库拉取一个容器镜像$ dp pull nginx:alpine# 从官方仓库拉取一个容器镜像并打包到压缩文件$ dp pull -o nginx.tar.gz nginx:alpine# 使用 sha256 拉取一个容器镜像$ dp pull mcr.microsoft.com/windows/nanoserver@sha256:ae443bd9609b9ef06d21d6caab59505cb78f24a725cc24716d4427e36aedabf2# 一次从官方仓库拉取多个容器镜像并打包到压缩文件$ dp pull -o project.tar.gz nginx:alpine nginx:1.17.5-alpine-perl# 从三方镜像仓库拉取多个容器镜像并打包到压缩文件$ dp pull -o project.tar.gz nginx:alpine gcr.io/google_containers/pause-amd64:3.1

至此,我们就演示完了如何在不需要 Docker 客户端的前提下拉取容器镜像的方法。如果你还有更多更好的方法,欢迎大家积极留言哟!

参考文档

  1. https://www.google.com

  2. https://xbuba.com/questions/37905763

  3. https://blog.fleeto.us/post/pull-image-without-docker/

你可能还喜欢

点击下方图片即可阅读

自从用上 Telepresence 后,本地调试 Kubernetes 中的微服务不再是梦!

docker pull下载很慢_假如服务器上没有 Docker 环境,你还能愉快的拉取容器镜像吗?...相关推荐

  1. docker pull下载很慢_一文了解Docker容器技术的操作

    一文了解Docker容器技术的操作 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上.技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力, ...

  2. docker wsl2启动不了_在window上安装docker的方法

    前一阵子公司要在线上部署docker,做完之后我就想在我的win10上面也装一个,在这个过程中遇到了一些问题,这里是对这些问题的一个笔记. 第一步:安装WSL2 docker需要通过WSL2才能运行, ...

  3. docker pull下载镜像时的报错及其解决方法

    docker pull下载镜像时的报错及其解决方法 参考文章: (1)docker pull下载镜像时的报错及其解决方法 (2)https://www.cnblogs.com/it-artical/p ...

  4. docker 不包含依赖 打包_从零开始学K8s: 4.Docker是什么

    "Docker"可以指代的对象可以有如下几个: Docker 容器技术:可以创建和使用Linux容器 Docker 社区:开源Docker社区致力于改进这些技术,使所有用户受益(h ...

  5. docker+nginx+tomcat*3在华为云服务器上的负载均衡

    具体包括: 1,要求部署一台Nginx和三台Tomcat服务器 2,Ngnix需要实现三种策略: 轮询: 权重,三台服务器的权重为1,3,5: IP Hash. 最终实现的效果是,本地电脑通过网页访问 ...

  6. 服务器上使用docker安装部署禅道zentao

    服务器上使用docker安装部署禅道zentao 目的:在服务器上安装docker禅道容器 一.查看服务器是否有禅道容器 docker ps -a 可以查看到所有容器. 二.从docker库下载禅道镜 ...

  7. 利用VSCode集成并连接远程Linux服务器上的Docker

    利用VSCode集成并连接远程服务器Docker 为什么要使用VSCode管理docker 为什么要使用VSCode管理docker 官网地址:https://code.visualstudio.co ...

  8. mscoreei.dll没有被指定在windows上运行_在Windows上使用Docker运行.NetCore

    今天我们来说下如何在windows下使用docker运行.net core,既然是docker,那么我们首先得在windows上安装docker. 在Windows安装 docker 有两种选择 : ...

  9. 从FTP服务器下载文件部署更新linux服务器上的服务

    作为软件测试人员,经常要发布开发的集成包.本来嘛,更新个服务,没什么大不了.但是集成包打出来,要更新的服务有9个(分别部署在三台服务器上),并且以后还会增加.如果手动更新,每次更新时间都得20分钟以上 ...

最新文章

  1. 2020亚太杯数学建模_2020 年 APMCM 亚太地区大学生数学建模竞赛
  2. 最邻近插值法(The nearest interpolation)实现图像缩放
  3. phpStorm安装xDebug
  4. Streaming 101
  5. Excel VBA 处理图形图表详解
  6. 论肱二头肌在日常生活中的锻炼的持久战|健身达人
  7. array_sum的用法
  8. Spark集群新增节点方法
  9. JPA Example查询
  10. Excel中VBA相关函数的使用
  11. 中国互联网20年简史(1998-2018),告诉你本质是什么、规律是什么
  12. mhl数据线_利用MHL数据线 手机同屏到乐视电视X50air上
  13. eclipse mars2汉化包下载
  14. 首届华为开发者大赛沙龙牵手大连-与开发者共话赛事
  15. 阿卡迪亚大学的计算机科学,阿卡迪亚大学计算机科学移动与普通计算本科申请.pdf...
  16. 五一假期维修手机感想
  17. 3.项目立项管理+信息系统项目管理+野马合集
  18. 大数据分析本身的工业化
  19. Python的numpy库中rand(),randn(),randint(),random_integers()等random系函数的使用
  20. 游戏引擎剖析 (10) 人工智能和导航(路径发现)

热门文章

  1. Selenium定位不到元素的解决方法—iframe挡住了去路
  2. 为什么我的IP地址经常变化
  3. 新书出炉:我的视频我做主:Premiere Pro CS5实战精粹(1CD)(彩印)
  4. Apache Nutch 1.3 学习笔记十(插件机制分析)
  5. 8.6 edu25 ,577#div2 CF补题(二分 ,dp 与 贪心
  6. [JZOJ3347] 【NOI2013模拟】树的难题
  7. 【impala学习之一】impala
  8. 图解VS2010打包全过程(转)
  9. spring boot 定时间任务
  10. Android版MrHuo工作室客户端开发心得(二)