无法使用 curl 从使用 docker api 的 tarball 加载 docker 图像
cannot use curl to load docker image from a tarball using docker api
我的docker版本:
[cloud-user@firstroot-1 curl]$ sudo docker version
Client:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d5108
Built: Thu Feb 4 18:34:50 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d5108
Built: Thu Feb 4 18:34:50 2016
OS/Arch: linux/amd64
我想使用 curl 从 tarball 加载图像,但它失败了。但是我没问题用这个命令加载它:
**sudo docker load --input utuntu.tar** //works
压缩包信息
[cloud-user@firstroot-1 curl]$ pwd
/home/cloud-user/curl
[cloud-user@firstroot-1 curl]$ ls -l utuntu.tar
-rwxrwxrwx 1 cloud-user cloud-user 130499072 Aug 1 15:46 utuntu.tar
这是我尝试过但失败的两个 curl 命令:
sudo ./curl --unix-socket /var/run/docker.sock -X POST -H "Content-Type: application/x-tar" -d "@/home/cloud-user/curl/utuntu.tar" http:/images/load
Untar re-exec error: exit status 1: output: archive/tar: invalid tar header
sudo ./curl --unix-socket /var/run/docker.sock -X POST -H "Content-Type: application/x-tar" -d "/home/cloud-user/curl/utuntu.tar" http:/images/load
Untar re-exec error: exit status 1: output: unexpected EOF
curl 适用于 /images/json、/containers/id/start 等命令,但不适用于加载。
images/load 文档确实有很多信息 https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/
从文件中使用 --data-binary @<filepath>
到 "post data exactly as specified with no extra processing whatsoever"。
sudo curl --verbose \
--unix-socket /var/run/docker.sock \
--request POST \
--header "Content-Type: application/x-tar" \
--data-binary "@image.tar" \
http:/images/load
-d
or --data
尝试像通过浏览器提交表单一样发送数据。
我的docker版本:
[cloud-user@firstroot-1 curl]$ sudo docker version
Client:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d5108
Built: Thu Feb 4 18:34:50 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d5108
Built: Thu Feb 4 18:34:50 2016
OS/Arch: linux/amd64
我想使用 curl 从 tarball 加载图像,但它失败了。但是我没问题用这个命令加载它:
**sudo docker load --input utuntu.tar** //works
压缩包信息
[cloud-user@firstroot-1 curl]$ pwd
/home/cloud-user/curl
[cloud-user@firstroot-1 curl]$ ls -l utuntu.tar
-rwxrwxrwx 1 cloud-user cloud-user 130499072 Aug 1 15:46 utuntu.tar
这是我尝试过但失败的两个 curl 命令:
sudo ./curl --unix-socket /var/run/docker.sock -X POST -H "Content-Type: application/x-tar" -d "@/home/cloud-user/curl/utuntu.tar" http:/images/load
Untar re-exec error: exit status 1: output: archive/tar: invalid tar header
sudo ./curl --unix-socket /var/run/docker.sock -X POST -H "Content-Type: application/x-tar" -d "/home/cloud-user/curl/utuntu.tar" http:/images/load
Untar re-exec error: exit status 1: output: unexpected EOF
curl 适用于 /images/json、/containers/id/start 等命令,但不适用于加载。
images/load 文档确实有很多信息 https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/
从文件中使用 --data-binary @<filepath>
到 "post data exactly as specified with no extra processing whatsoever"。
sudo curl --verbose \
--unix-socket /var/run/docker.sock \
--request POST \
--header "Content-Type: application/x-tar" \
--data-binary "@image.tar" \
http:/images/load
-d
or --data
尝试像通过浏览器提交表单一样发送数据。