【问题标题】:How can I recreate 'docker run' using the remote API?如何使用远程 API 重新创建“docker run”?
【发布时间】:2015-06-27 22:07:51
【问题描述】:

远程 API 调用看起来相当于什么

$ docker run -d our-image

对于docker run 正在做什么here 有一个高级视图,这是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-compose的源代码吗——这是用Python编写的,使用了docker-py python库,它是一个围绕Docket Remote API的库。

标签: docker remoteapi


【解决方案1】:

如果我对您的理解正确,您想收集有关从 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 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-03
    • 2018-07-12
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2023-02-10
    • 2021-11-05
    相关资源
    最近更新 更多