如何“docker导入”ubuntu云图像?

如何“docker导入”ubuntu云图像?,ubuntu,docker,tar,Ubuntu,Docker,Tar,尝试从他们的网站导入ubuntu云图像,如下所示: docker import http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz trusty-server-clouding mkdir -p /tmp/image chdir /tmp/image tar -xzf /some/broky.tar.gz sudo tar -czf . /some/fixed.tar.gz

尝试从他们的网站导入ubuntu云图像,如下所示:

docker import http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz trusty-server-clouding
mkdir -p /tmp/image
chdir /tmp/image
tar -xzf /some/broky.tar.gz
sudo tar -czf . /some/fixed.tar.gz
得到这个错误:

Unhandled tar header type 83
使用addtrusty-server-cloudimg-amd64-root.tar.gz创建
Dockerfile
,也不会起作用,它只是将tarball文件按原样添加到容器中

curl http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz | docker run -i --rm -w /tmp/image ubuntu bash -c 'tar -xzf - && tar -czf - .' | docker import --change 'CMD ["/bin/bash"]' - trusty-server-cloudimg
检查:

docker run -it --rm trusty- cat /etc/issueserver-cloudimg
#>>> Ubuntu 14.04.3 LTS \n \l
解释 这是一个in-tar实现,它无法处理一些使用本机
tar
实用程序创建的带有不寻常选项的角盒tarball

解决此问题的最简单方法是重新打包tarball,而不使用任何额外的命令行选项,如:

docker import http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz trusty-server-clouding
mkdir -p /tmp/image
chdir /tmp/image
tar -xzf /some/broky.tar.gz
sudo tar -czf . /some/fixed.tar.gz
然后将其提供给docker:

docker import /some/fixed.tar.gz fixed-image
为了在脚本中使用,或者在不同的平台上使用,或者如果不存在
sudo
,只需使用docker为自己重新打包tarball即可:

docker run -i --rm -w /tmp/image ubuntu bash -c 'tar -xzf - && tar -czf - .'

您可以将损坏的tarball通过管道传输到此命令,并将其输出通过管道传输到
docker import-image name
,如上面的简短回答所示。

您在这里做什么,同时发布一个问题和答案?是的。我在寻找正确答案,但只在docker的github上找到了问题,没有明确的解决方案。而且
tar
不是那么容易处理的:)