thw*_*int 10 docker docker-compose
我有以下简化的 docker-compose 文件:
版本:'2'
服务:
测试基地:
容器名称:test.base
图像:docker.pnet.ch/r-base:latest
重启:失败
网络:
- 我的网
dns: 192.168.198.2
dns_search:
- pext.ch
- pnet.ch
网络:
我的网:
司机:桥
驱动程序选择:
com.docker.network.enable_ipv4:“真”
ipam:
驱动程序:默认
配置:
- 子网:192.168.198.0/24
网关:192.168.198.1
有了这个,我希望在容器 /etc/resolv.conf 中有以下条目:
搜索 pext.ch pnet.ch 名称服务器 192.168.198.2
但相反,我有以下内容:
搜索 pext.ch pnet.ch 名称服务器 127.0.0.11 选项 ndots:0
当我使用 docker run with --dns 手动启动容器时,192.168.199.2 /etc/resolv.conf 包含一个具有给定 IP 地址的名称服务器。
我的 docker-compose 文件有什么问题还是 docker-compose 中的错误?
我在 RHEL 和 docker-compose 1.9.0 上使用 docker 1.10.3 版
Fra*_*ong 10
我曾经volumes:解决过这个问题。在你的情况下:
version: '2'
services:
test.base:
container_name: test.base
image: docker.pnet.ch/r-base:latest
restart: on-failure
networks:
- mynet
volumes:
- ./resolv.conf:/etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
该./resolv.conf文件包含您所期望的内容:
search pext.ch pnet.ch
nameserver 192.168.198.2
Run Code Online (Sandbox Code Playgroud)
这里假设该resolv.conf文件与您的 docker-compose 文件位于同一文件夹中。
Docker Compose 文件格式 v2 中的网络与版本 1 不同,我认为这是实际问题。docker run ...命令有效而docker-compose ...无效也令人困惑。我遇到了同样的问题。
我发现 Docker Compose v2为文件中定义的容器创建了一个用户定义的网络docker-compose.yml,而docker run ...默认情况下使用桥接网络,docker0在主机上命名。此外,对于自定义网络,docker 使用嵌入式 DNS 服务器(即127.0.0.11)。文档说:
--dns如果嵌入式 DNS 服务器无法解析来自容器的名称解析请求,则通过该选项传递的 IP 地址由嵌入式 DNS 服务器用于转发 DNS 查询。这些--dnsIP 地址由嵌入式 DNS 服务器管理,不会在容器的/etc/resolv.conf文件中更新。
我认为最后一行回答了你的问题。无论如何,您的容器应该正确解析,不是吗?
| 归档时间: |
|
| 查看次数: |
14653 次 |
| 最近记录: |