如何使用Ansible的docker_container模块从非安全HTTP Docker registry拉取镜像
问题解答
docker_container模块本身未提供insecure_registry参数,因为HTTP私有镜像源的信任配置属于Docker守护进程的全局规则,不属于单次容器部署任务的可调参数。你无需修改现有docker_container的配置,只需要提前在待部署容器的虚拟机节点上配置Docker的全局规则即可,有两种可选方案:
方案1:配置Docker不安全镜像源(无需证书,适合内网测试环境)
在你的Ansible剧本中,原有容器部署任务之前新增两个任务,完成目标节点的Docker配置:
- 写入daemon.json配置,将私有registry地址加入不安全列表
- name: 配置Docker不安全镜像源列表 copy: content: | { "insecure-registries": ["你的registry的IP地址(带端口,默认5000)"] } dest: /etc/docker/daemon.json mode: '0644'
- 重启Docker服务加载新配置
- name: 重启Docker服务生效配置 service: name: docker state: restarted enabled: yes
配置完成后,你原有docker_container任务无需任何修改,即可正常通过HTTP拉取私有镜像。
方案2:使用自签名证书(适合生产环境)
如果内网环境要求更高安全性,不想开启不安全镜像源配置,可以给私有registry生成自签名证书,再将根证书分发到所有需要拉取镜像的节点的/etc/docker/certs.d/你的registry地址/ca.crt路径下,配置完成后Docker会自动信任该registry的证书,同样无需修改原有docker_container任务参数即可正常拉取镜像。
内容的提问来源于stack exchange,提问作者ask
相关产品推荐
相关产品推荐

