在Windows 10上链接两个docker容器

在Windows 10上链接两个docker容器,windows,docker,Windows,Docker,我的mongo容器正在运行: docker run --security-opt=seccomp:unconfined -p 27017:27017 -p 28017:28017 --name mong --rm mong --link myapp 还有我的应用程序 docker run --rm -ti --security-opt=seccomp:unconfined -p8080:8080 --name myapp --link mong --expose 8080 当我运行docke

我的mongo容器正在运行:

docker run --security-opt=seccomp:unconfined -p 27017:27017 -p 28017:28017 --name mong --rm mong --link myapp
还有我的应用程序

docker run --rm -ti --security-opt=seccomp:unconfined -p8080:8080 --name myapp --link mong --expose 8080
当我运行docker端口myapp时

8080/tcp->0.0.0.0:8080

docker-port-mong
获取以下信息:

27017/tcp->0.0.0.0:27017

28017/tcp->0.0.0.0:28017

但是,myapp没有看到mong端口。当我运行docker run--rm-ti--security opt=seccomp:unconfined-p8080:8080--name myapp--link mong--expose 8080时,使用
--net=host
标志myapp开始查看mong容器端口,但停止expose 8080


如何修复它?怎么了?

如果要链接两个或多个容器,可以使用

首先创建一个网络:

$ docker network create --driver bridge dev_network
现在使用--net=dev_network运行这两个容器

容器1

$ docker run --security-opt=seccomp:unconfined -p 27017:27017 -p 28017:28017 --name mong --rm mong --net=dev_network
容器2

docker run --rm -ti --security-opt=seccomp:unconfined -p 8080:8080 --name myapp --net=dev_network

您现在可以使用容器名称访问网络中的容器。

是否可以从主机访问8080上的myapp?myapp inside Docker正在等待与127.0.0.1上的mongo的连接是,-p(主机端口:containerport)标志定义您要从主机访问容器的端口。因此,如果您的应用程序在该端口上为网页提供服务器,您可以在应用程序源代码中使用定义mongo ip地址的代码,您应该使用容器名称而不是ip。由于您的应用程序位于容器内,因此它可以看到名称为的其他容器。