【问题标题】:Set DNS options during docker build在 docker build 期间设置 DNS 选项
【发布时间】:2017-10-26 08:22:59
【问题描述】:

由于本地网络配置,我必须将 --dns 和 --dns-search 选项添加到我的 docker run 命令中,如下所示:

docker run --dns XX.XX.1.1 --dns-search companydomain -t mycontainer

但是 docker build 没有相同的选项。有没有办法在构建期间指定这些选项?

【问题讨论】:

标签: docker dns


【解决方案1】:

基于 Dockerfile 的解决方案

您还可以在每个 RUN-command 级别修复 DNS 查找问题:

RUN echo "nameserver XX.XX.1.1" > /etc/resolv.conf && \ 
    echo "search companydomain" >> /etc/resolv.conf && \    
    command_depending_on_dns_resolution

请记住:这只会更改RUN 命令的 DNS 解析行为,因为对/etc/resolv.conf 的更改不会持久(除了comment from of one of the core Docker engineers,我找不到任何有关此行为的官方参考布莱恩·高夫)。

【讨论】:

  • 权限被拒绝?即使以 root 身份运行 docker
  • 可能您应该针对您的问题提出一个新问题,因为对我来说这仍然有效(使用 v18.06.1-ce 和 API v1.38 测试)
  • 这看起来像是我需要的解决方案,但我也看到了权限问题
  • 这曾经可以工作-我在公司网络上的许多内部 docker 构建上对其进行了编程-从最新版本的 docker 看来 /etc/resolv.conf 不再起作用了他们将文件限制为只读 - 只是回到这篇文章来通知在 2021 年发现这个的人。
【解决方案2】:

docker build 使用主机上运行的 docker 引擎的 DNS 设置。有关更新引擎上的 DNS 设置的步骤,请参阅 my answer here

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2018-12-30
    相关资源
    最近更新 更多