Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一docker网络本地主机上运行多个容器_Docker - Fatal编程技术网

在同一docker网络本地主机上运行多个容器

在同一docker网络本地主机上运行多个容器,docker,Docker,我想从我的应用程序连接到本地主机上的mongodb,因此它们需要具有相同的本地主机地址 所以问题是:两个容器是否可以共享它们的本地主机,或者对于每个容器,本地主机ip必须不同? 我这样做是为了测试环境的目的,所以我不想要内存中的数据库、更改的mongo uri或任何不同的解决方案。我只想通过本地主机从A连接到B 要运行我的网络和容器,请键入: docker network create --driver bridge isolated_nw docker run --name mongodb -

我想从我的应用程序连接到本地主机上的mongodb,因此它们需要具有相同的本地主机地址

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

我这样做是为了测试环境的目的,所以我不想要内存中的数据库、更改的mongo uri或任何不同的解决方案。我只想通过本地主机从A连接到B

要运行我的网络和容器,请键入:

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
我的自定义docker网络:

[
    {
        "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": {}
    }
]
应用程序属性

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

localhost
不起作用,因为它引用了roomate配置文件容器。但你能做到

spring.data.mongodb.uri=mongodb://mongodb:27017/admin
因为两个容器都连接到同一个网络。也不需要将mongodb端口映射到主机(除非您需要它用于其他用途)