ansible之docker_container模块

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

0 人点赞