当前位置: 首页 > news >正文

Docker自动化部署与配置详解③

目录结构

docker/
├── tasks/
│   └── main.yml
├── templates/
│   ├── daemon.json.j2
│   └── docker.service.j2
└── vars/└── main.yml

1. tasks/main.yml

- name: 获取是否已经安装 dockershell: 'systemctl is-active docker || echo "NoFound"'register: docker_svc- name: 获取 docker 版本信息shell: "{{ base_dir }}/bin/docker-bin/dockerd --version|cut -d' ' -f3"register: docker_verconnection: localrun_once: truetags: upgrade_docker, download_docker- name: debug infodebug: var="docker_ver"connection: localrun_once: truetags: upgrade_docker, download_docker- name: 转换 docker 版本信息为浮点数set_fact:DOCKER_VER: "{{ docker_ver.stdout.split('.')[0]|int + docker_ver.stdout.split('.')[1]|int/100 }}"connection: localrun_once: truetags: upgrade_docker, download_docker- name: 已安装提示debug:msg: "docker 服务已安装"when: "'NoFound' not in docker_svc.stdout"- block:- name: 准备 docker 相关目录file:name: "{{ item }}"state: directoryloop:- "{{ bin_dir }}"- "/etc/docker"- name: 下载 docker 二进制文件copy:src: "{{ item }}"dest: "{{ bin_dir }}/"mode: '0755'with_fileglob:- "{{ base_dir }}/bin/docker-bin/*"tags: upgrade_docker, download_docker- name: 配置 docker daemontemplate:src: daemon.json.j2dest: /etc/docker/daemon.json- name: 创建 docker 的 systemd unit 文件template:src: docker.service.j2dest: /etc/systemd/system/docker.servicetags: upgrade_docker, download_docker- name: 开机启用 docker 服务shell: systemctl enable dockerignore_errors: true- name: 开启 docker 服务shell: systemctl daemon-reload && systemctl restart dockertags: upgrade_docker- name: 轮询等待 docker 服务运行shell: "systemctl is-active docker.service"register: docker_statusuntil: '"active" in docker_status.stdout'retries: 8delay: 2tags: upgrade_docker# 配置 docker 命令软链接,方便单独安装 docker- name: 配置 docker 命令软链接file:src: "{{ bin_dir }}/docker"dest: /usr/bin/dockerstate: linkignore_errors: truewhen: "'NoFound' in docker_svc.stdout"

2. templates

2.1 daemon.json.j2
{"data-root": "{{ DOCKER_STORAGE_DIR }}","exec-opts": ["native.cgroupdriver={{ CGROUP_DRIVER }}"],
{% if ENABLE_MIRROR_REGISTRY %}"registry-mirrors": ["https://docker.nju.edu.cn/","https://kuamavit.mirror.aliyuncs.com"],
{% endif %}
{% if DOCKER_ENABLE_REMOTE_API %}"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"],
{% endif %}"insecure-registries": [{{ INSECURE_REG_STRING }}],"max-concurrent-downloads": 10,"live-restore": true,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "50m","max-file": "1"},"storage-driver": "overlay2"
}
2.2 docker.service.j2
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io[Service]
Environment="PATH={{ bin_dir }}:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart={{ bin_dir }}/dockerd 
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process[Install]
WantedBy=multi-user.target

3. vars/main.yml

# cgroup driver
CGROUP_DRIVER: "{%- if DOCKER_VER|float >= 20.10 -%} \systemd \{%- else -%} \cgroupfs \{%- endif -%}"#
INSECURE_REG_STR: "{% for reg in INSECURE_REG %}\"{{ reg }}\",{% endfor %}"
INSECURE_REG_STRING: "{{ INSECURE_REG_STR.rstrip(',') }}"

http://www.dtcms.com/a/536500.html

相关文章:

  • istio业务返回503问题
  • 建设服装网站的意义国内免费空间可以做什么网站
  • 餐饮商城网站制作多少钱动漫设计一年学费多少
  • Web 前端工具全流程指南 从开发到调试的完整生态体系
  • 清理谷歌浏览器垃圾文件 Chrome “User Data”
  • 科技创新的重要前沿是新网站前期seo怎么做
  • [论文笔记•(多智能体)]LLMs Can Simulate Standardized Patients via Agent Coevolution
  • CAS:2055198-03-1,PC-Biotin-PEG4-NHS carbonate在分子标记与生物分析中的应用潜力
  • 人工智能时代医疗大健康微服务编程:架构与实践(代码部分)
  • 【论文阅读】AAAI 2025 | 面向精确分割式联邦学习的多模型聚合与知识重放
  • 网站建设对工厂意义外贸网站建设智能建站
  • 小企业网站建设公司哪家好深圳做网站服务
  • 《地理信息系统》第四章空间数据结构学习笔记
  • docker网络代理
  • 域名买了之后如何建设网站公司形象墙
  • RabbitMQ延迟队列详解
  • Vue 项目集成声网SDK
  • 云南网站设计多少钱零件加工网上接订单
  • 【裸眼3D原理浅析】使用AI生成平面裸眼3D图像——“科幻战士破框而出”的裸眼3D图背后的原理与技巧
  • 最新的软件测试学习内容以及途径(2025年)
  • 抓包工具:proxyman的使用方法
  • Python爬虫实战:上证 100指数数据爬取、存储、分析与可视化研究
  • 司法局网站开发方案做网站服务器怎么用
  • 景区网站策划书互联网投诉中心官网入口
  • 使用kafka造测试数据进行测试
  • 操作系统5.3.2 磁盘调度算法
  • 旅游网站的广告预算怎么做校园超市网站开发背景
  • 淘宝网官方网站建筑设计网站网址
  • Spring Boot3零基础教程,云服务停机不收费,笔记71
  • 2、SVPWM原理及实现学习笔记