为什么我无法为 docker 定义 DNS

为什么我无法为 docker 定义 DNS

我将尝试尽可能准确地总结我的问题。我必须在装有 CentOS 8 的机器上安装 Gitlab,并将其安装为 docker 容器。到目前为止,一切进展顺利,我能够安装 gitlab 和 runner 容器,但我无法让 runner 运行任何作业。作业被卡住了,无法正确执行

最初问题是由于 gitlab-ci.yml 文件中缺少标签,我修复了这个问题,但出现了另一个问题,即运行器创建的容器无法解析 DNS,从而无法下载运行上述文件中的两个作业所需的依赖项。这是出现的错误:

作业错误

所以我决定创建一个只包含一个 DNS 配置的 daemon.json 文件,但之后作业卡住的问题又出现了。我删除了该文件并重新启动了机器,但问题仍然存在。所以我使用 dockerd 设置 DNS,当我尝试执行命令时dockerd --dns "server ip",出现了这个错误:

dockerd 错误

为了进一步说明,我使用的是 gitlab 和在公司 DNS 服务器内创建的域,并且两者都使用私有 IP,因为对 gitlab 的访问仅在内部进行。如果有人想查看是否存在任何问题,请关注 gitlab-ci.yml 文件。

gitlab-ci.yml

附言:我可以在容器之间进行通信,并且我可以从每个容器 ping 创建 gitlab 域的 DNS 服务器。在此先感谢任何能帮助我解决这个问题的人

相关内容