我在先前创建的网络中的docker-compose文件中运行了两个Docker服务:

version: '3'
services:

  api:
    container_name: api
    //blah blah
    networks:
    - mynetwork
    build:
      context: .
    ports:
    - 8080:8080

  networks:
    mynetwork:

这是api的Dockerfile(NodeJS):
FROM node

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app

RUN npm install

CMD npm start

然后,我在同一个网络(mynetwork)中运行另一个容器(带有静态webapp的nginx),并与api链接。
docker run --rm --net=mynetwork --link api:api -p 80:80 myimage

和Dockerfile(带有React应用程序的NGINX):
FROM nginx:alpine

COPY ./build /usr/share/nginx/html/

但是它无法连接到api。当我在Web应用程序的容器中sh并ping到api时,我得到了:
$ ping api
$ ping: bad address 'api'

我想念什么?

最佳答案

解决了! docker-compose文件配置错误。 mynetwork已经存在,所以我需要使用以下配置:

networks:
  default:
    external:
      name: mynetwork

代替:
  networks:
    mynetwork:

并从声明的服务中删除networks密钥。

关于docker - 无法连接到同一Docker网络中的链接容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52045992/

10-16 16:27
查看更多