我已经在先前创建的网络中的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'
我想念什么?
答案 0 :(得分:0)
解决了! docker-compose文件配置错误。 mynetwork
已经存在,因此我需要使用以下配置:
networks:
default:
external:
name: mynetwork
代替:
networks:
mynetwork:
并从已声明的服务中删除networks
键。