如何使用远程 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'

我注意到 HostnamePathLogPath 等字段是在 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 个对象。