docker - 构建docker镜像时如何访问父主机服务?
问题描述
在构建 docker 映像时,我想访问托管在父主机上的服务。例如,假设我需要访问npm
在主机上运行的私有存储库xpto:8080
。在 xpto 上,我还在 Dockerfile 调用上构建一个新图像
RUN npm set registry http://xpto:8080
RUN npm install
当我尝试时,docker build -t=my_image .
我总是得到
失败,原因:连接EHOSTUNREACH 192.168.2.103:4873
也试过RUN wget xpto:8080
了
失败:没有到主机的路由。
尝试使用 --add-host 参数,但它没有锻炼。
奇怪的是,当我尝试从另一个容器访问父主机服务时,它运行正常,但必须添加 --net="host" 参数,如下所示:
docker run --it --rm --net="host" my-test-image sh
wget xpto:8080
问题是 docker build 不支持这个 --net 参数!
谢谢,
解决方案
由于某些未知原因,centosOS 防火墙仅在构建时阻止连接,而不是在运行时阻止。
解决方案是在防火墙中添加一个例外,问题就解决了。
推荐阅读
- jquery - 选择框时如何更改其他输入字段?
- c# - 为 Outlook 兼容的会议邀请构建 MIME 消息
- c - 如何正确使用 sizeof 来测量块到 malloc?
- python - 无法在终端中执行 jupyter notebook:“execution_count”:null
- email - Microsoft Exchange 外出回复未到达 gmail 地址
- keycloak - getAccessToken() 上的 Keycloak 401
- python - Python Pyautogui:为什么他没有右键单击我的代码?
- database - 我在 oracle 数据库中的选择查询中的查询性能问题
- view - Laravel - 使用 domPDF 将视图的一部分渲染为 PDF
- r - 将存储为字符的日期转换为 R 中的日期格式