我在我的笔记本电脑已连接互联网但受到严格控制的办公室里工作。我不允许在上面安装未经授权的软件。

我的开发工作站完全可以与我联系,但是它没有Internet连接。

在那里我有什么办法可以从集线器下载Docker映像作为文件,然后可以将其潜行到我的开发工作站?类似于我如何下载RPM或Ruby Gems并将其刻录到CD?还是使用“ docker pull”命令下载图像的唯一方法?

#1 楼

简短:使用save CLI命令。

https://docs.docker.com/engine/reference/commandline/save/


您可以拉动

sudo docker pull ubuntu


,然后可以将该图像保存到文件中。

sudo docker save -o ubuntu_image.docker ubuntu


将文件传输到脱机计算机(USB / CD /任何版本)上,然后从文件中加载图像:
docker load image.docker,有关更多信息,请参见评论。)

评论


太棒了,今天晚上会旋转。谢谢!

– shearn89
2015年9月2日,11:07

通过,意识到他们不再使用docker load ,而是使用docker load
–陈奕迅
16年1月27日在8:50

必须做sudo docker load -i ubuntu_image.docker否则将无法正常工作

– John Culviner
16年4月22日在20:36

在使用dockertools将本地计算机拉入本地计算机并将文件移至开发环境后,我具有与@ shearn89相同的设置,但出现错误“无法在Windows上加载Linux映像”。本地计算机和开发环境都是Windows,您知道这个工作流程会导致生成Linux映像吗?

– Ryan Haunfelder
18年4月16日在21:56

#2 楼

我意识到已经有了一个可以接受的答案,但是我想提供这种解决方案,我认为它可以更直接地解决以下问题:“如何在不使用Docker的情况下下载Docker映像?” >我有一个类似的问题,即我公司的政策要求我向团队提供我要使用的文件(通常通过URL)。然后,他们将执行各种扫描和审核,然后将文件放置到我们断开连接的开发网络中。我无法使用Docker来检索文件,然后将其导出并交给该团队,因此提供的其他答案对我来说不是一个选择。建议使用GitHub上的samalba提供的有用工具:https://github.com/samalba/docker-registry-debug

当然,该工具应使用Docker构建,其中一部分我需要它的原因是因为我没有对Docker的开放访问权:)。因此,由于我没有这个选择,所以我将在这里详细说明一下步骤(所有操作都来自该回购中的commit 05fffc4344fd6f866f84c403caae3ba81193dd45):

$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./docker-registry-debug curlme docker ubuntu


该命令的输出是一个完整的curl命令行,可用于下载文件:

# Reading user/passwd from env var "USER_CREDS"
# No password provided, disabling auth
# Getting token from https://index.docker.io
# Got registry endpoint from the server: https://registry-1.docker.io
# Got token: signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read
curl -i --location-trusted -I -X GET -H "Authorization: Token signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read" https://registry-1.docker.io/v1/images/ubuntu/layer


希望对其他人有所帮助!

评论


谢谢!这也将解决我的问题。不幸的是,不推荐使用Docker注册表v1,并于2019年将其禁用(请参阅注册表v1 API弃用)。

– loup
20-11-5在12:05