如何`docker导入`ubuntu云图片?
How to `docker import` ubuntu cloud image?
尝试像这样从他们的网站导入 ubuntu 云图像:
docker import http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz trusty-server-clouding
并出现此错误:
Unhandled tar header type 83
用 ADD trusty-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
说明
这是一个 feature-bug in Docker/Go tar 实现,它无法处理一些极端情况 tar 使用具有异常选项的本机 tar
实用程序创建的球。
解决此问题的简单方法是重新打包 tarball,不使用任何额外的命令行选项,如下所示:
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 为自己重新包装 tarballs 就很方便:
docker run -i --rm -w /tmp/image ubuntu bash -c 'tar -xzf - && tar -czf - .'
您可以将损坏的 tar 球通过管道传输到此命令,并将其输出通过管道传输到 docker import - image-name
,如上面的简短回答所示。
尝试像这样从他们的网站导入 ubuntu 云图像:
docker import http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz trusty-server-clouding
并出现此错误:
Unhandled tar header type 83
用 ADD trusty-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
说明
这是一个 feature-bug in Docker/Go tar 实现,它无法处理一些极端情况 tar 使用具有异常选项的本机 tar
实用程序创建的球。
解决此问题的简单方法是重新打包 tarball,不使用任何额外的命令行选项,如下所示:
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 为自己重新包装 tarballs 就很方便:
docker run -i --rm -w /tmp/image ubuntu bash -c 'tar -xzf - && tar -czf - .'
您可以将损坏的 tar 球通过管道传输到此命令,并将其输出通过管道传输到 docker import - image-name
,如上面的简短回答所示。