在同一个dockernetworking本地主机上运行多个容器

我想从我的应用程序连接到本地主机上的mongodb,所以他们需要有相同的本地主机地址。

所以问题是: 两个容器可以共享他们的本地主机,或者每个容器的本地主机ip必须是不同的?

我正在做这个testing环境的目的,所以我不想在内存中的数据库,更改mongo uri或任何不同的解决scheme。 我只想通过localhost从A连接到B.

要运行我的networking和容器我input:

docker network create --driver bridge isolated_nw docker run --name mongodb -d -p 27017:27017 --network=isolated_nw mongo:3.4.2 docker run --name roomate-profiles --network=isolated_nw -d -p 8080:8080 sovas/roomate-profiles 

我的自定义dockernetworking:

 [ { "Name": "isolated_nw", "Id": "3efd6831784c2a8c9e9ea345144fcc6b9180e70c0e1b4b5d1a72219051b24e67", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1/16" } ] }, "Internal": false, "Containers": { "57d4e2fb1f0c8d776329fd6ce82e5905df00e261ab6923595578dcb35913b03e": { "Name": "roomate-profiles", "EndpointID": "5a8158dc1aba6958218d1cca3c98ca911ab2cfa73be839ceece2e7819b244c91", "MacAddress": "02:42:ac:12:00:03", "IPv4Address": "172.18.0.3/16", "IPv6Address": "" }, "8fa815735d7ebb77434f8abf11e58f18faeb5d67e2743903d81f4600bd558c35": { "Name": "mongodb", "EndpointID": "7b7a7ed1ad08bbe381fb6d66c6e9fea66ee9b7c581f530bdf4d82f0741bff04b", "MacAddress": "02:42:ac:12:00:02", "IPv4Address": "172.18.0.2/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ] 

application.properties

 spring.data.mongodb.uri=mongodb://localhost:27017/admin 

由于它指向roomate-profiles容器, localhost将不起作用。 但你可以做

 spring.data.mongodb.uri=mongodb://mongodb:27017/admin 

因为两个容器都连接到同一个networking。 也不需要将mongodb端口映射到主机(除非你需要其他东西)。