Docker 实战系列(五):将 Ansible 打包为轻量化镜像,打造最小自动化运维环境

Docker 实战系列(五):将 Ansible 打包为轻量化镜像,打造最小自动化运维环境

在自动化运维中,Ansible 是一款非常好用的无代理(Agentless)自动化工具,常用于批量配置、部署和管理服务器。
本篇我们会从零开始,将 Ansible 打包成一个足够小的 Docker 镜像,作为自动化运维的基础环境,镜像中只包含必要的包,避免多余依赖和编译步骤。


一、目标与原则

目标:

  • 构建一个 < 100MB 的 Ansible 镜像
  • 使用轻量级基础镜像(python:alpine
  • 只包含 Ansible 必要运行依赖
  • 无编译步骤(不安装 build 工具链)
    原则:
  • 选择合适的基础镜像(alpine 变种)
  • pip 安装官方发布的预编译包(wheel),避免源码编译
  • 清理 pip 缓存,减少镜像层大小

二、项目目录

ansible-docker/
└── Dockerfile

三、编写 Dockerfile

# 使用 Python Alpine 作为基础镜像(小巧+自带 Python)
FROM python:3.11-alpine
LABEL maintainer="Your Name <you@example.com>" \
      description="Minimal Ansible Docker image for automation tasks"
# 避免交互式安装
ENV PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PIP_NO_CACHE_DIR=1
# 安装 Ansible 及必要依赖
RUN apk add --no-cache \
      openssh-client \
      sshpass \
      bash \
    && pip install --no-cache-dir --no-compile ansible-core==2.16.4
# 设置工作目录
WORKDIR /ansible
# 默认进入 ansible --version
CMD ["ansible", "--version"]

如果你不想运行基础镜像后就直接退出,可以将 CMD 命令改为 tail -f /dev/null


四、构建镜像

在项目目录执行:

docker build -t ansible-minimal:1.0 .

注:如果你的 Docker Engine ≥ v23.0 ,版本构建时可能出现以下提示,这是 Docker 在构建镜像时发出的弃用警告,官方建议安装并使用 docker buildx 插件来构建镜像,但我们这次学习还是使用 doc

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

derek2026

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值