我在一个办公室工作,我的笔记本电脑连接到互联网,但是严格控制。 我不允许在其上安装未经授权的软件。
我的开发工作站是我可以随我做的,但它没有互联网连接。
有没有什么办法让我从集线器上下载Docker镜像作为一个文件,然后运行我的开发工作站? 类似于我可以下载RPM或Ruby Gems并将其刻录到CD? 或者是使用“docker pull”命令下载图像的唯一方式?
短:使用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 ubuntu_image.docker
我意识到已经有一个被接受的答案,但是我想提供这个解决scheme,我认为它更直接地解决了问题:“如何在不使用Docker执行检索的情况下下载Docker镜像?
我有一个类似的问题,我的公司的政策要求我为团队提供我想要使用的文件(通常通过URL)。 然后他们将执行各种扫描和审计,然后将文件放到我们断开的开发networking上。 我不能使用Docker来检索文件,然后将其导出并交给该团队,所以提供的其他答案不是我的select。
幸运的是,我在StackOverflow上find了这个答案,它build议在GitHub上使用samalba提供的有用工具: https : //github.com/samalba/docker-registry-debug
当然,这个工具是用Docker构build的,我需要的部分原因是我没有对Docker的开放访问:)。 所以,由于我没有这个选项,我会拼出我在这里所采取的步骤(这是从该回购提交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
希望这可以帮助别人!