Sha*_*ili 5 ansible docker docker-compose ansible-template
我正在做一个Ansible小项目,我在其中使用Docker容器。
我的问题简短:
我想获取正在运行的Dockercontainer的状态!
我的意思是,我想获取容器的当前状态,Docker通过使用“ docker ps”命令向您显示。
例如:
我想从特定的容器中获得这些结果之一。但是无需使用Command或Shell 模块!
韩国
从Ansible 2.8开始,您可以使用docker_container_info,从本质上返回以下输入docker inspect <container>:
- name: Get infos on container
docker_container_info:
name: my_container
register: result
- name: Does container exist?
debug:
msg: "The container {{ 'exists' if result.exists else 'does not exist' }}"
- name: Print the status of the container
debug:
msg: "The container status is {{ result.docker_container['State']['Status'] }}"
when: result.exists
Run Code Online (Sandbox Code Playgroud)
在我的Docker版本中,State包含以下内容:
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 8235,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-01-25T14:10:08.3206714Z",
"FinishedAt": "0001-01-01T00:00:00Z"
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见https://docs.ansible.com/ansible/devel/modules/docker_container_info_module.html。
不幸的是,docker 周围的模块目前都不能“列出容器”。我做了以下工作来获取状态:
- name: get container status
shell: docker ps -a -f name={{ container }} --format {%raw%}"table {{.Status}}"{%endraw%} | awk 'FNR == 2 {print}' | awk '{print $1}'
register: status
Run Code Online (Sandbox Code Playgroud)
结果将在状态变量中可用
| 归档时间: |
|
| 查看次数: |
7344 次 |
| 最近记录: |