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

使用docker compose访问本地主机和docker网络

容修贤
2023-03-14

我在一个docker compose文件中运行两个不同的服务。我通过引用容器的服务名称来谈论每个服务。

现在我希望我的容器A也能访问localhost。为此,我添加了network_mode=host的配置,但这会创建一个错误,说明容器A无法与容器B通信。

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://mongo:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017

对于每个撰写文件docker-composs创建一个网络,所以在这种情况下,我应该手动将容器分配到一个专用网络吗?或者是否有任何变通方法来访问这两个网络?

共有1个答案

蔚承天
2023-03-14

尝试添加链接

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://mongo:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    links:
      - mongo
    #network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017

如果你使用链接,你不需要network_mode: host

EDIT-其他解决方案:

version: '2'

services:
  rocketchat:
    image: myimage
    environment:
      - MONGO_URL=mongodb://localhost:27017/dbname
    depends_on:
      - mongo
    ports:
      - 3000:3000
    network_mode: host

  mongo:
    image: mongo:3.2
    ports:
      - 27017:27017
    network_mode: host
 类似资料:
  • 我有一个 docker 容器,我想给它 --network=host AND -。我需要连接到主机网络才能将主机数据狗服务器 (UDP) 和 网络用于其数据库。 尝试添加这两个网络会导致。 知道正确的处理方法吗?

  • 以下图片: 当我运行这个命令时,我可以在http://localhost:4444/上看到Selenium 任何帮助让这两种方式中的任何一种有效。

  • 问题内容: 我在Debian Jessie上安装了Docker引擎,并且正在其中运行带有nginx的容器。我的“运行”命令如下所示: 它工作正常,问题在于现在可以通过访问此容器的内容。我想在此服务器上运行多个容器(域),所以我想为其设置反向代理。 我如何确保只能通过反向代理访问容器,而不能直接从反向代理访问容器?例如。: //编辑: 为了清楚起见-我不是在问如何设置反向代理,而是如何运行只能从本地

  • 我正在windows 8.1的笔记本电脑上使用Xampp localhost并试图通过我的手机访问它,我打开CMD并键入ipconfig和IPV4地址是192.168.1.3 我通过笔记本电脑打开它,它正常显示xampp文件夹,但当我将ip放入移动浏览器时,它什么也不给我(此网页不可用-ERR_CONNECTION_TIMED_OUT) 那么我怎样才能从我的android设备访问Xampp呢? 我