这是因为在使用该模块时,Ansible 会重写 /etc/resolv.conf 文件,从而删除所有默认的 nameserver 条目。但是,可以使用如下的方法手动将 nameserver 条目添加回 /etc/resolv.conf 文件中:
- name: Start container
docker_container:
name: my_container
image: my_image
dns_servers:
- 8.8.8.8
dns_search_domains:
- mydomain.com
become: true
become_user: root
vars:
resolv_conf: |
search mydomain.com
nameserver 8.8.8.8
environment:
FINAL_CMD: |
echo "$resolv_conf" > /etc/resolv.conf && exec my_command
该方法使用了 Ansible 的变量替换机制,其中 resolv_conf
变量包含了想要添加到 /etc/resolv.conf 文件中的 nameserver 条目,通过设置 environment 变量,在最终执行命令中将该变量写入到文件中。