0

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 不对应。

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

如果做不到这一点,有人可以告诉我如何使用远程 API 进行我在插图中展示的启动吗?

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

有人请指教...

4

1 回答 1

0

docker rundocker create, 后跟的组合docker start,所以https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/#create-a-container后跟https://docs.docker.com/engine/参考/api/docker_remote_api_v1.22/#start-a-container

如果您正在“交互式”运行,则可能需要在此之后附加到容器;https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/#attach-to-a-container

于 2016-04-01T16:44:26.433 回答