无法连接到同一Docker网络中的链接容器

时间:2018-08-27 19:40:05

标签: docker docker-compose

我已经在先前创建的网络中的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

然后,我在与api链接的同一网络(mynetwork)中运行另一个容器(带有静态webapp的nginx)。

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。当我将sh放入Web应用程序的容器中并ping到api时,得到以下信息:

$ ping api
$ ping: bad address 'api'

我想念什么?

1 个答案:

答案 0 :(得分:0)

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

networks:
  default:
    external:
      name: mynetwork

代替:

  networks:
    mynetwork:

并从已声明的服务中删除networks键。