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