4 'metadata_version': '1.1',
6 'supported_by': 'community'
11 module: docker_list_containers
13 short_description: "List running docker containers"
16 - "Lists all running containers or those with matching label"
21 - container label name to match
25 - container label value to match
29 - Bartek Grzybowski (b.grzybowski@partner.samsung.com)
33 # List all running containers
34 - name: List containers
35 docker_list_containers:
37 # List all running containers matching label
38 - name: List containers
39 docker_list_containers:
40 label_name: 'io.rancher.project.name'
41 label_value: 'kubernetes'
46 description: List of running containers matching module criteria
53 "infrastructure-server"
57 from ansible.module_utils.docker_common import AnsibleDockerClient
59 class DockerListContainers:
62 self.docker_client = AnsibleDockerClient(
64 label_name=dict(type='str', required=False),
65 label_value=dict(type='str', required=False)
69 self.containers = self.docker_client.containers()
70 self.label_name=self.docker_client.module.params.get('label_name')
71 self.label_value=self.docker_client.module.params.get('label_value')
74 self.containers_names=self._get_containers_names_by_label()
76 self.containers_names=self._get_containers_names()
79 containers=self.containers_names,
83 def _get_containers_names(self):
84 return [str(container_meta.get('Names')[0][1:]) for container_meta in self.containers if 'Names' in container_meta]
86 def _get_containers_names_by_label(self):
88 for container_meta in self.containers:
89 if container_meta.get('Labels',{}).get(self.label_name) == self.label_value:
90 names.append(str(container_meta['Names'][0][1:])) # strip leading '/' in container name and convert to str from unicode
95 cont=DockerListContainers()
96 cont.docker_client.module.exit_json(**cont.result)
98 if __name__ == '__main__':