![](/img/trans.png)
[英]How to connect docker container with host machine's localhost mysql database?
[英]How to access the Host's machine's localhost 127.0.0.1 from docker container
我在本地主机上托管 Git 守护进程,即'/usr/bin/git daemon --listen=127.0.0.1 --base-path=/opt'
作为systemd
服务,我试图从 docker 容器访问它。 我没有提到端口,因为我不想将端口暴露给外部网络。
Dockerfile:
RUN git clone git://127.0.0.1/repo/ repo_dir
但它不工作,它看起来像在容器内试图连接容器的本地主机。
那么如何从 Docker 容器连接主机的本地主机呢?
它不工作,它看起来像在容器内,它试图连接容器的本地主机。
是的,这就是容器提供的隔离背后的全部思想,甚至是 docker docker build
(它为每个 Dockerfile 行构建一个容器,并将其提交到中间映像中)。
正如OP dhairya所评论的,以及我在我的评论中提到的文档中提到的:“ Docker 容器网络”和docker build
,您可以在构建期间设置托管RUN
指令的网络模式:然后localhost
将引用主机 localhost .
docker build --network="host"
这是因为API 1.25+ only ,在docker v.1.13.0-rc5 (2017 年 1 月)
POST /build
接受networkmode
参数来指定构建期间使用的网络。
但是,如果您在实际构建的映像中不需要 Git(为了运行它的主要进程),则更容易
在 Dockerfile 中使用COPY
指令,复制代表检出 Git 存储库的主机文件夹。
注意:如果您的目标映像中没有 git,请将.git/
: 添加到您的.dockerignore
(与您的.dockerignore
位于同一文件夹中的文件),以便不复制该克隆存储库的repo_dir/.git
文件夹。
COPY repo_dir .
(这里的 ' .
' 代表正在构建的图像中的当前WORKDIR
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.