如何在正在运行的docker容器上运行salt状态

时间:2016-10-20 11:22:08

标签: docker salt-stack configuration-management

有没有办法在正在运行的docker容器中运行shell命令作为Salt状态的一部分?我发现Salt中的整个dockerng模块非常混乱,因为它只列出了临时命令。

从我可以从文档中掌握的内容,它应该像这样工作:

mystate:
    dockerng.run:
      - name: 12345
      - cmd: bash -l -c ifconfig

情况似乎并非如此。

主人的命令:

 sudo salt-ssh -i box_with_docker_containers state.apply

错误:

  

在SLS中找不到州'dockerng.run'

1 个答案:

答案 0 :(得分:1)

dockerng.run模块:

dockerng模块包含run函数:

mystate:
  module.run:
    - name: dockerng.run
    - m_name: 12345
    - cmd: bash -l -c ifconfig

名称是模块的名称, m_name 运行命令的容器名称或ID, cmd 是命令。

有关dockerng模块的详细信息,请参阅salt.modules.dockerng文档。

有关从州内运行模块的更多信息,请参阅salt.states.module

已弃用的dockerio.run状态:

使用dockerio.run,您可以在特定容器中运行命令:

mystate:
  dockerio.run:
    - name: bash -l -c ifconfig
    - cid: 12345

名称是在容器中运行的命令, cid 是容器ID或名称。

请注意,自版本2015.8.0起,dockerio已弃用,未来的功能开发仅在dockerng中完成。