2022-10-27 15:37:52
浏览数 (2)
docker_container模块用于管理docker容器
代码语言:javascript
复制auto_remove: yes|no
command # 容器启动时执行的命令
entrypoint # 覆盖镜像默认值ENTRYPOINT
env_file # 环境变量的文件路径
etc_hosts # 主机名到IP的映射,添加到容器的/etc/hosts文件中
force_kill: yes|no # 停止正在运行的容器
healthcheck: # 对容器进行健康检查
interval: # 检查时间,默认30s
retries: # 重试次数,默认为3
start_period:
test: # 运行测试命令
timeout: # 执行一次检查的最长时间,默认30s
hostname: # 容器的主机名
image: # 用于创建容器的仓库路径和标签
init: yes|no # 在容器内运行一个初始化程序
interactive: yes|no # 容器启动后,即使没有连接,也应处于打开状态
keep_volumes: yes|no # 保留与已删除容器关联的卷
links: # 链接容器,格式:container_name:alias
mac_address # 容器的MAC地址
mounts:
consistency:
labels:
no_copy:
propagation:
read_only: yes|no # 是否为只读
source: # 挂载的源路径
target: # 容器内的路径
tmpfs_mode:
tmpfs_size:
type:
volume_driver:
volume_options:
name: # 容器的名称,必选参数
network_mode: # 容器连接的网络,选项为:bridge、host、none
networks: # 容器所属的网络
aliases:
ipv4_address: # 该容器的ipv4地址
ipv6_address: # 该容器的ipv6地址
links: # 链接到的容器列表
name: # 网络的名称
privileged: yes|no # 赋予容器扩展特权
published_ports: # 容器的端口列表,如:80,8080:8080,0.0.0.0:8080:8080
pull: yes|no # 如果为yes,始终接取镜像的最新版本
read_only: yes|no # 把容器的根文件系统挂载为只读
recreate: yes|no # state present和state started一起使用时,可强制重新创建现有容器
restart: yes|no # state started一起使用时,强制重新启动匹配的容器
restart_policy: no|on-failure|always|unless-stopped # 容器重启策略
restart_retries: # 与重启策略一起使用,控制最大重启尝试次数
shm_size: # /dev/shm的大小,数字是正整数,单位可以是B、K、M、G、T,默认64M
state: absent|present|stopped|started
# absent:停止并删除与指定名称匹配的容器,使用force_kill是杀死容器而不是停止容器,使用keep_volumes保留与已删除容器关联的卷
# present:检查是否有匹配的容器,如果没有与指定名称匹配的容器,则创建一个容器,如果容器与指定名称匹配,但配置不匹配,则对其进行更新
# started:启动容器
# stopped:停止正在运行的容器
tmpfs: # 挂载tmpfs目录
tty: yes|no # 分配伪TTY
volumes: # 容器中挂载的卷列表,格式:/host:/container
从docker hub拉取nginx镜像,并创建启动容器,监听80端口
代码语言:javascript
复制---
- hosts: test
remote_user: root
tasks:
- name: create image
docker_image:
name: nginx
tag: "1.18"
state: present
- name: start container
docker_container:
name: nginx
image: nginx:1.18
state: started
published_ports: 80:80
停止并删除容器
代码语言:javascript
复制---
- hosts: test
remote_user: root
tasks:
- name: create image
docker_image:
name: nginx
tag: "1.18"
state: present
- name: start container
docker_container:
name: nginx
image: nginx:1.18
state: absent
published_ports: 80:80