我的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 port 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容器端口,但是停止暴露8080.
如何解决?有什么问题?
答案 0 :(得分:1)
如果要链接两个或更多容器,可以使用network。
首先创建一个网络:
$ 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
您现在可以使用容器名称访问网络内的容器。