有没有办法在正在运行的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'
答案 0 :(得分:1)
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,您可以在特定容器中运行命令:
mystate:
dockerio.run:
- name: bash -l -c ifconfig
- cid: 12345
名称是在容器中运行的命令, cid 是容器ID或名称。
请注意,自版本2015.8.0起,dockerio
已弃用,未来的功能开发仅在dockerng
中完成。