Docker:容器可以执行docker ps或docker镜像吗?

时间:2017-01-23 15:33:26

标签: node.js express docker

我想实施一个网络服务来控制我的" docker VPS"。

所以我想到了一个nodejs + express脚本,只需执行响应网络呼叫的docker imagesdocker ps命令。

但我认为我无法在docker容器中执行docker命令,对吗?

从另一个容器控制容器状态的最佳方法是什么?

请注意,我的所有容器都是“仅限现货”,因此用户也应该从网络服务开始,按照日志进行操作并最终将其从API调用中删除,因此,所有这些都来自我的内部控制器容器。

你能建议我什么?

2 个答案:

答案 0 :(得分:2)

你是否需要在https://graph.windows.net/<tenant_name>/me/changePassword?api-version=1.6 Request Body : {"currentPassword": "Password1!","newPassword": "Password2!"} 命令中添加挂载docker socket的事实,所以

docker run

现在您可以在已启动的容器

中启动任何docker命令

答案 1 :(得分:1)

我不建议直接使用Docker守护程序套接字,因为它不安全。该守护进程套接字具有root访问权限。这意味着您可以根据需要做任何事情。

  

所以一般来说,我建议在使用需要访问Docker套接字的Docker镜像之前仔细考虑,即使是只读权限,因为它可能会使您的环境面临一些额外的风险。

     

- raesene的The Dangers of Docker.sock

但是如果要保护对套接字的访问权限,可以使用Docker远程API(HTTP / HTTPS):

  1. 您可以protect the API with HTTPS,它只允许来自通过CA证书签名的证书进行身份验证的客户端的连接)
  2. API是一个REST API并使用JSON,我认为它更容易理解如何控制Docker
  3. 您的应用程序可能位于独立的服务器上
  4. 可以找到API文档here,您可以使用cURL进行测试。

    因为你使用Node.js,你可以使用这个npm包:dockerodeREADME文件中的文档),这将简化任务:)。