【问题标题】:Saving a Docker image with boot2docker使用 boot2docker 保存 Docker 镜像
【发布时间】:2015-03-03 23:46:52
【问题描述】:

对于初学者来说,我对 Docker 还是很陌生。我创建了一个我想分享的简单图像。由于发布到集线器不是一种选择,我正在尝试docker save 命令。我在 Windows 7 上,所以我将 Docker 与 boot2docker 一起使用。保存图像不起作用。我尝试了以下命令但没有成功:

使用 Linux 路径:

docker save -o /home/image.tar image:tag
docker save image:tag > /home/image.tar

使用 Windows 路径:

docker save -o C:/Temp/image.tar image:tag
docker save image:tag > C:/Temp/image.tar

每当我使用 Linux 路径时,boot2docker 都会挂起(或空闲)。当我使用 Windows 路径时,它会显示“没有这样的文件或目录”。

我在这里缺少什么?谢谢。

编辑

当我在调试模式下运行 docker 时,我得到以下输出(此处仅粘贴最后几行)。它似乎停止了......

EBU[0213] rendered layer for bbfcd8330926bb09da7b27af1d0d2ca001b52ff1b101c91a7287fa65072aaa64 of [84992] size
NFO[0213] -job image_tarlayer(bbfcd8330926bb09da7b27af1d0d2ca001b52ff1b101c91a7287fa65072aaa64) = OK (0)
NFO[0213] +job image_get(bbfcd8330926bb09da7b27af1d0d2ca001b52ff1b101c91a7287fa65072aaa64)
NFO[0213] -job image_get(bbfcd8330926bb09da7b27af1d0d2ca001b52ff1b101c91a7287fa65072aaa64) = OK (0)
NFO[0213] +job image_inspect(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354)
NFO[0213] -job image_inspect(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354) = OK (0)
NFO[0213] +job image_tarlayer(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354)
EBU[0213] rendered layer for 7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354 of [3072] size
NFO[0213] -job image_tarlayer(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354) = OK (0)
NFO[0213] +job image_get(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354)
NFO[0213] -job image_get(7b66ebf8de49669f1020dcdb8769f8919475aff826bc3f366ea637d5d96fd354) = OK (0)
NFO[0213] +job image_inspect(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff)
NFO[0213] -job image_inspect(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff) = OK (0)
NFO[0213] +job image_tarlayer(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff)
EBU[0213] rendered layer for 7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff of [3584] size
NFO[0213] -job image_tarlayer(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff) = OK (0)
NFO[0213] +job image_get(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff)
NFO[0213] -job image_get(7409a59cd6a36265e3548b778dd2eb7e6ae3043a5532770d4468d1812d8561ff) = OK (0)
NFO[0213] +job image_inspect(c47858ae54b487c13117fc78daeb6e871693d1c5f23d51440934940c874bed0a)
NFO[0213] -job image_inspect(c47858ae54b487c13117fc78daeb6e871693d1c5f23d51440934940c874bed0a) = OK (0)
NFO[0213] +job image_tarlayer(c47858ae54b487c13117fc78daeb6e871693d1c5f23d51440934940c874bed0a)

编辑 2

一段时间后,连接似乎丢失了(不足为奇...)

Connection to localhost closed by remote host.
error in run: exit status 65535

【问题讨论】:

    标签: windows save docker boot2docker


    【解决方案1】:

    使用管道查看器检查发生了什么,例如docker save image:tag | pv > /home/image.tar,您将看到复制的速率。我想知道 Windows 语法是否应该类似于 docker save -o C:\Temp\image.tar image:tag(在 Linux 上安装 Pipe Viewer,sudo apt-get install pv,或检查 http://www.ivarch.com/programs/pv.shtml

    【讨论】:

    • 您对 Windows 路径是正确的,应该注意到...当我将斜杠更改为反斜杠时,我看到的行为与 Linux 路径相同。当 boot2docker 中连 apt-get 都不可用时,我该如何安装 pv?
    • 我忽略了 boot2docker 不是一个完整的 Linux :-( 你的镜像大小是多少?你等了多久才放弃docker save ?检查docker events 发生了什么,见文档docs.docker.com/reference/commandline/cli/#events
    • 我已经为 650 MB 等待了 10 分钟,所以这应该不是问题。不确定当docker save 空闲时(或它在做什么)我应该如何执行docker events。在控制台运行时,我的击键没有被接收到。
    • 随时启动docker events --since '2015-03-03',看看它显示了什么。
    • 它什么也没显示。但奇怪的是,我仍然可以访问控制台并输入我想要的任何内容(它不会响应我输入的内容)。这正是我在运行docker save 命令时看到的行为。也许这里发生了其他事情?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2014-08-29
    • 2021-04-08
    相关资源
    最近更新 更多