Node.js 如何链接两个docker容器?

Node.js 如何链接两个docker容器?,node.js,google-chrome,docker,Node.js,Google Chrome,Docker,我是docker的新手。我用headless chrome构建了一个爬虫程序,但现在我必须用docker部署,有镜像,它将在端口9222中承载远程调试模式,我的节点应用程序正在运行另一个容器,我不知道如何链接这两个容器 docker run -it --name nodeserver --link chrome:chrome nodeapp bash 但在docker内部,我无法访问本地主机:9222我建议使用docker compose,它附带docker for mac/windows,

我是docker的新手。我用headless chrome构建了一个爬虫程序,但现在我必须用docker部署,有镜像,它将在端口9222中承载远程调试模式,我的节点应用程序正在运行另一个容器,我不知道如何链接这两个容器

docker run -it --name nodeserver --link  chrome:chrome nodeapp bash

但在docker内部,我无法访问本地主机:9222

我建议使用docker compose,它附带docker for mac/windows,专为这种简单连接而设计

你需要一个docker文件,比如

version: "3"

services:
  headless-browser:
    image: yukinying/chrome-headless
    ports:
      - 9222

  crawler:
    build: 
      context: .
      dockerfile: Dockerfile
    links:
      - headless-browser
然后是同一文件夹中的Docker文件 e、 g.用于测试连接使用

FROM alpine

RUN apk update && apk add curl

CMD curl http://headless-browser:9222
使用命令
docker compose up

输出将是文本形式的控制台页面(因此您知道连接工作正常)


要避免缩进出现任何问题。。。我已经制作了一个复制和粘贴的repo:

我建议使用docker compose,它随mac/windows的docker一起提供,专门用于这种简单的连接

你需要一个docker文件,比如

version: "3"

services:
  headless-browser:
    image: yukinying/chrome-headless
    ports:
      - 9222

  crawler:
    build: 
      context: .
      dockerfile: Dockerfile
    links:
      - headless-browser
然后是同一文件夹中的Docker文件 e、 g.用于测试连接使用

FROM alpine

RUN apk update && apk add curl

CMD curl http://headless-browser:9222
使用命令
docker compose up

输出将是文本形式的控制台页面(因此您知道连接工作正常)


要避免缩进出现任何问题。。。我已经创建了一个复制和粘贴的repo:

错误:在文件“.\docker compose.yml”中,服务“ports”必须是映射而不是数组。
它抛出了一个错误我在缩进复制和粘贴到SO中时出错。我已经在上面更新了,如果它弄乱了缩进,我也会为您重新创建一个缩进(请参见答案)
错误:在文件“.\docker compose.yml”中,服务“port”必须是一个映射而不是数组。
它会抛出一个错误我在缩进副本中出错并粘贴到SO中。我已经更新了上面的内容,如果它弄乱了你的缩进,我也进行了回购(见答案)