首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找host.docker.internal:没有这样的主机

查找host.docker.internal:没有这样的主机
EN

Stack Overflow用户
提问于 2021-12-28 10:27:00
回答 1查看 2.9K关注 0票数 0

我试图运行sudo docker-compose来运行我的应用程序并连接到本地主机mongodb,但是我遇到了这个错误。

代码语言:javascript
运行
复制
time="2021-12-28T08:31:54Z" level=fatal msg="server selection error: context deadline exceeded, current topology: { Type: Unknown, Servers: [{ Addr: host.docker.internal:27017, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp: lookup host.docker.internal: no such host }, ] }"

最初,我尝试用host.docker.internal替换本地主机,让mongo与坞网络连接,但它似乎找不到它。我也在最新版本的码头,所以这不是一个不受支持的对接版本的问题。

docker-compose.yaml

代码语言:javascript
运行
复制
version: '3.3'
services:
  app: 
    build: 
      context: .
      dockerfile: dockerfile
    ports: 
      - "8080:20717"
    restart: unless-stopped
    env_file: .env
    networks:
      - ext
      - int

networks:
 ext:
 int:
  internal: true

我以前有一个extra_hosts部件,但是用networks部分代替了它。

代码语言:javascript
运行
复制
    extra_hosts:
        - "host.docker.internal:127.0.0.1"

我的.env文件包含应用程序的URI和其他一些必要的变量。

代码语言:javascript
运行
复制
DB_URI=mongodb://host.docker.internal:27017
CITY_DB=nht_cities
COL_USER=user
COL_CITY=city
USER_AUTH_TOKEN=50dbafa...

我的应用程序本身运行在8080端口上。

代码语言:javascript
运行
复制
fmt.Println("Server running at port 8080")
log.Fatal(http.ListenAndServe(":8080", r)) // r being the router
EN

回答 1

Stack Overflow用户

发布于 2022-07-03 08:53:10

将此添加到docker组合中的"app“服务中

代码语言:javascript
运行
复制
extra_hosts:
  - "host.docker.internal:host-gateway"

然后,您的应用程序将能够连接到运行在主机上的mongodb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70505750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档