【问题标题】:Mappings between Docker Remote API and its command line clientDocker Remote API 与其命令行客户端之间的映射
【发布时间】:2016-04-01 16:05:45
【问题描述】:

Docker 文档非常适合描述您可以从命令行执行的操作。

它还对与远程 API 相关的命令进行了相当全面的描述。

然而,它似乎没有提供足够的上下文来使用远程 API 来执行使用命令行会执行的操作。

我所说的一个例子:假设你想做一个类似的命令:

docker run --rm=true -i -t -v /home/user/resources:/files -p 8080:8080 --name SomeService myImage_v3 

使用远程 API。 Remote API 中有一个容器“运行”命令:

POST /containers/(id or name)/start

此命令引用了创建容器命令,以获取相当长的 JSON 字符串列表,您需要添加这些字符串才能执行实际启动。

这里的问题是:首先,仅仅调用这个命令是行不通的。显然还有更多事情要做(我猜你必须先创建,然后再开始)。其次,不清楚您需要使用哪些 JSON 字符串来执行我在命令行中显示的操作(例如设置端口、映射到外部目录等)。不仅远程 API 文档中提供的 JSON 字符串 与命令行参数对齐(至少,不是以任何显而易见的方式!),而且还不清楚需要哪些 JSON 字符串用于创建(假设我们必须进行创建,但尚未建立!)并且是开始所必需的。

这只是与启动容器有关。假设你想停止并销毁一个容器,如下所示:

docker stop SomeService
docker rm SomeService

当然,在远程 API 中似乎有一对一的命令:

POST /containers/(id or name)/stop
POST /containers/(id or name)/kill

但您可以传递给它们的 ID 似乎与您列出容器或图像时显示的 ID 不对应。

我可以去哪里收集有关如何设置和使用将这些命令及其 JSON 参数与命令行中的命令和参数相关联的远程 API 命令的信息?

如果做不到这一点,谁能告诉我如何使用远程 API 来启动我在插图中展示的操作???

无论如何:是否有人从事 docker 开发工作,我可以将这些文档问题提交给我?我相信,这是他们文档中的一个大“漏洞”。

请高人指教……

【问题讨论】:

    标签: api docker docker-api


    【解决方案1】:

    【讨论】:

    • 好的:所以我对需要进行创建和运行是正确的。其他参数呢?在问这个问题之前(我总是在问这个问题之前先研究一下)我已经研究了你链接到令人作呕的页面,但仍然无法关联我在示例中提到的端口映射或目录映射。例如:如何使用远程 API 指定带有 -t -v /home/user/resources:/files 的运行???
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多