Answers:
简短:使用save
CLI命令。
https://docs.docker.com/engine/reference/commandline/save/
您可以在可以访问互联网的计算机上提取图像。
sudo docker pull ubuntu
然后您可以将该图像保存到文件中
sudo docker save -o ubuntu_image.docker ubuntu
在离线计算机(USB / CD /其他)上传输文件并从文件加载图像:
sudo docker load -i ubuntu_image.docker
(在旧版本中,这只是docker load image.docker
,请参阅注释以获取更多信息。)
docker load <image>
,而是使用docker load < ubuntu_image.docker
。docs.docker.com/engine/reference/commandline/load
sudo docker load -i ubuntu_image.docker
,否则将无法正常工作
我意识到已经有了一个可以接受的答案,但是我想提供这种解决方案,我认为它可以更直接地解决以下问题:“如何在不使用Docker的情况下下载Docker映像?”
我有一个类似的问题,我公司的政策要求我向团队提供我要使用的文件(通常通过URL)。然后,他们将执行各种扫描和审核,然后将文件放置到我们断开连接的开发网络中。我无法使用Docker检索文件,然后将其导出并交给该团队,因此提供的其他答案对我来说不是一个选择。
幸运的是,我在StackOverflow上找到了这个答案,它建议使用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
希望这对别人有帮助!