gpt4 book ai didi

mongodb - 如何将本地Mongo数据库连接到docker

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:32 33 4
gpt4 key购买 nike

我正在从事 golang 项目,最近我阅读了有关 docker 的信息,并尝试在我的应用程序中使用 docker。我正在使用 mongoDB 作为数据库。现在的问题是,我正在创建 Dockerfile 来安装所有包并编译和运行 go 项目。我在本地运行 mongo 数据,如果我在没有 docker 的情况下运行 go 程序,它会给我输出,但是如果我在同一个项目中使用 docker(只是安装依赖项并运行这个项目),它编译成功但没有给出任何输出,有错误::

CreateSession: no reachable servers 

我的 Dockerfile::

# Start from a Debian image with the latest version of Go installed
# and a workspace (GOPATH) configured at /go.
FROM golang
WORKDIR $GOPATH/src/myapp

# Copy the local package files to the container's workspace.
ADD . /go/src/myapp

#Install dependencies
RUN go get ./...

# Build the installation command inside the container.
RUN go install myapp

# Run the outyet command by default when the container starts.
ENTRYPOINT /go/bin/myapp

# Document that the service listens on port 8080.
EXPOSE 8080
EXPOSE 27017

最佳答案

当您在 Docker 中运行应用程序时,它是在虚拟环境中运行;它就像另一台计算机,但一切都是虚拟的,包括网络。

为了将你的容器连接到主机,Docker 给它一个特殊的 ip 地址,并给这个 ip 一个值为 host.docker.internal 的 url。

因此,假设 mongo 在主机上的每个接口(interface)上都绑定(bind)运行,从容器可以使用连接字符串到达​​它:

mongodb://host.docker.internal:21017/database

简化,只需使用 host.docker.internal 作为您的 mongodb 主机名。

关于mongodb - 如何将本地Mongo数据库连接到docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314900/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com