我有以下简化的docker-compose文件:
version: '2' services: test.base: container_name: test.base image: docker.pnet.ch/r-base:latest restart: on-failure networks: - mynet dns: 192.168.198.2 dns_search: - pext.ch - pnet.ch networks: mynet: driver: bridge driver_opts: com.docker.network.enable_ipv4: "true" ipam: driver: default config: - subnet: 192.168.198.0/24 gateway: 192.168.198.1
有了这些,我希望容器/etc/resolv.conf中有以下条目:
search pext.ch pnet.ch nameserver 192.168.198.2
但相反,我有以下内容:
search pext.ch pnet.ch nameserver 127.0.0.11 options ndots:0
当我使用docker手动启动容器时,运行-DNS 192 . 168 . 199 . 2/etc/resolv . conf包含一个具有给定ip地址的名称服务器。
我的docker-compose文件有什么问题吗?还是docker-compose中的错误?
我在RHEL和docker compose 1.9.0上使用docker版本1.10.3
如前所述,resolv。conf
由于某些原因没有改变,因此我发现了docker compose
的一个肮脏的黑客:更改解析。在docker构建期间,conf
处于原位。
您应该在命令开始时更改文件,并且在命令结束前保持不变。
像这样:
运行echo“nameserver 10.100.1.13”
我知道这远不是好的编码实践,但我认为它比安装
/etc/resolf更优雅。conf
来自外部世界。
Docker Compose文件格式v2中的网络与版本1不同,我认为这是实际问题。同样令人困惑的是,docker运行…
命令有效,而docker编写…
命令无效。我也经历过同样的问题。
我发现Docker Compose v2为Docker Compose中定义的容器创建了一个用户定义的网络。yml
文件,而docker run…
默认情况下在主机上使用名为docker0的桥接网络。此外,对于自定义网络,docker使用嵌入式DNS服务器(即
127.0.0.11
)。医生说:
如果嵌入式DNS服务器无法解析来自容器的名称解析请求,则嵌入式DNS服务器使用通过
--dns
选项传递的IP地址来转发DNS查询。这些--dns
IP地址由嵌入式DNS服务器管理,不会在容器的/etc/resolv.conf
文件中更新。
我认为最后一行回答了你的问题。无论如何,你的容器应该可以正确解析,不是吗?
我使用卷:
来解决这个问题。在您的情况下:
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
其中./resolv.conf
文件包含您所期望的内容:
search pext.ch pnet.ch
nameserver 192.168.198.2
这里假设< code>resolv.conf文件与docker-compose文件在同一个文件夹中。
我有一个大 gui 的 JList,我删除了所有其他不相关的代码。我可以初始化列表,但在使用按钮时无法从中添加/删除项目。我读到的所有内容都说要使用DefaultListModel。然后,当您重新初始化列表时,它将自动更新列表。 我也尝试重新聚焦并重新粉刷面板和框架,但这也不起作用。
我找到了更新数据的示例,但它使用了DefaultTableModel。当我创建自己的TableModel和自己的data类时,当我将数据添加到JTable中时,它不会更新。 有我的桌子模型: 当我添加了任何信息,但它没有更新。在JTable中,我必须把这个方法放在哪里来进行正确的数据更新?
问题内容: 我正在通过ng-repeat循环渲染数据。而且我希望它在更新数组时进行更新。从我阅读的内容来看,这应该会自动发生,但是这是行不通的。那我在做什么错? 的HTML: 控制器(此功能通过ng-click在按钮上触发): Console.log显示该数组已正确更新,但是我视图中的表未更改。我不知道我在做什么错。 问题答案: 那是因为您在method中更改了数组引用。 为了避免这种情况,我们使
我现在迷路了。
我奔跑 我得到一个错误: 无法将您的需求解析为可安装的软件包集。 当前在require dev中有以下设置: 以及我们公司创建的一个不相关的翻译包。 我正在尝试将codeception更新到最新版本。 我已经尝试过在不同的版本中设置phpunit,但我无法消除错误。 我做错了什么? 最新消息 我更新composer.json使用相同版本的包 输出,除 跑了 仍然得到错误: 那是为什么呢?在我设置新
问题内容: 我正在尝试将JProgressBar添加到我的程序中,但不会更新!仅当原因为100%时,该值才会更改。这是我的方法。 更改进度栏的值位于上述方法的底部。 这就是我所谓的方法。 编辑:以上根本不是问题,问题之一是程序正在使用整数除法而不是十进制。 问题答案: 是一个整数,也是。因此发生的是小数被截断。你应该做什么,就像 这样做是确保将其除以具有十进制功能的数据类型,该数据类型将返回更具包