当前位置: 首页 > 知识库问答 >
问题:

将主机文件用于kubernetes pod中的docker-in-docker容器

郭修平
2023-03-14

我想要的:

在 Jenkins master 创建的 kubernetes pod 中动态添加主机,并允许 Pod 中挂载的 docker 使用这些主机。

我正在使用Jenkins为docker build创建动态从站,并为docker build和docker推送创建了docker-in-docker从站容器。docker-in-docker是通过将VM的docker.sock安装到容器来创建的:

volumeMounts:
- name: hostpathvolume
  mountPath: '/var/run/docker.sock'

我正在使用 kubernetes 的 hostAliases 在 hosts 文件中附加一些私有 docker 注册表:

hostAliases:
- ip: 9.110.73.11
  hostnames:
  - devopsprod.icp
- ip: 9.119.42.60
  hostnames:
  - devops.icp

我已经确认创建的pod在/etc/hosts中有这些主机,但当我运行时:

docker login -u xxx -p xxx devops.icp:8500

我收到一个DNS错误:

Error response from daemon: Get https://devops.icp:8500/v2/: dial tcp: lookup html" target="_blank">devops.icp on 0.0.0.0:00: no such host

这意味着我在容器中运行的docker没有使用pod中的/etc/hosts来查找ip地址。有办法解决这个问题吗?我不想在虚拟机的/etc/hosts文件中手动添加主机。

共有1个答案

申屠俊发
2023-03-14

你已经将 docker.sock 挂载到 Pod 中,但 Docker 仍然使用 Node 中的配置,而不是 Pod 中的配置。没有其他选项,您需要为每个节点上的/etc/hosts添加别名才能使其正常工作。

 类似资料:
  • 我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理本身上安装所有的运行时和库。 为了实现这一点,我需要将在容器中构建的构建构件复制回主机中。有可能吗?

  • 我是新来的Docker和试图了解什么是最好的方式插入docker父主机IP到容器主机文件。 我在我的Dockerfile中使用以下命令

  • 问题内容: 我正在尝试为我们使用的Docker容器构建备份和还原解决方案。 我已经创建了Docker基本映像,并且不想每次都使用Docker文件重建它来向其添加文件。 我想创建一个从主机运行的脚本,并使用Docker映像创建一个新容器,然后将文件复制到该容器中。 如何将文件从主机复制到容器? 问题答案: 该命令可用于复制文件。 可以将一个特定文件复制到容器中,例如: 可以从容器中复制一个特定文件,

  • 问题内容: 我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理程序本身上安装所有运行时和库。 为此,我需要将容器内部构建的构建工件复制回主机。那可能吗? 问题答案: 为了将文件从容器复制到主机,可以使用以下命令 这是一个例子: 这里 goofy_roentgen 是我从以下命令获得的容器名称: 您还可以使用(部分) 容器ID 。以下命令等效于第一个

  • 问题内容: 我正在尝试将一组文件从Docker主机复制到容器。在AUFS系统上,直接进入/ var / lib / docker / aufs / …即可。但是我是另一个使用Fedora的系统,它具有devicemapper作为存储驱动程序。在这个系统上,如果我这样做: 我什么都没有。我已经尝试了将文件从主机复制到Docker容器的所有建议 使用tar似乎很棒,而不是直接转到基础FS。但是我不能假

  • 我一无所获。我尝试了从将文件从主机复制到Docker容器的所有建议 使用tar似乎很棒,而不是直接去底层FS。但我不能假设焦油会出现在所有容器中。 如果是相关的,我甚至尝试在容器中创建一个文件,但它然后做了一个查找。-在/var/lib/docker/devicemapper/mnt中命名无效。