如何使用远程 API 重新创建 'docker run'?
How can I recreate 'docker run' using the remote API?
远程 API 调用看起来像做什么,比如说
$ docker run -d our-image
docker run
正在做的事情有一个高级视图 here, and this is a related question。
我已经尝试应对 ContainerConfig
部分:
curl -X GET 'http://0.0.0.0:2375/images/our-image/json'
给这个电话:
curl -X POST -H "Content-Type: application/json" -d $CONTAINER_CONFIG 'http://0.0.0.0:2375/containers/create'
然后执行 docker run our-image
并比较,对于创建的两个相应容器,输出:
curl -X GET 'http://0.0.0.0:2375/containers/<container-id>/json'
我注意到 HostnamePath
和 LogPath
等字段是在 docker run
启动的版本中设置的。
如果我没理解错的话,您想收集有关从 Docker 客户端传递到 Docker 守护程序的参数的详细信息。如果是这样,请尝试使用此解决方法:
cd /var/run
sudo mv docker.sock docker.sock.orig
sudo socat -v UNIX-LISTEN:/var/run/docker.sock,group=docker,perm=0660,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock.orig
此命令会将所有客户端请求转储为 JSON 个对象。
远程 API 调用看起来像做什么,比如说
$ docker run -d our-image
docker run
正在做的事情有一个高级视图 here, and this is a related question。
我已经尝试应对 ContainerConfig
部分:
curl -X GET 'http://0.0.0.0:2375/images/our-image/json'
给这个电话:
curl -X POST -H "Content-Type: application/json" -d $CONTAINER_CONFIG 'http://0.0.0.0:2375/containers/create'
然后执行 docker run our-image
并比较,对于创建的两个相应容器,输出:
curl -X GET 'http://0.0.0.0:2375/containers/<container-id>/json'
我注意到 HostnamePath
和 LogPath
等字段是在 docker run
启动的版本中设置的。
如果我没理解错的话,您想收集有关从 Docker 客户端传递到 Docker 守护程序的参数的详细信息。如果是这样,请尝试使用此解决方法:
cd /var/run
sudo mv docker.sock docker.sock.orig
sudo socat -v UNIX-LISTEN:/var/run/docker.sock,group=docker,perm=0660,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock.orig
此命令会将所有客户端请求转储为 JSON 个对象。