我是 docker 的新手。
我已经用 mongo 运行了一个 docker 容器(使用 boot2docker
)docker run --name some-mongo -p 27017:27017 -d mongo
docker 内部:
root@8e9b742c127a:/# mongo
MongoDB shell version: 3.0.2
connecting to: test
Server has startup warnings:
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten]
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten]
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-05-12T08:49:56.130+0000 I CONTROL [initandlisten]
> show dbs
local 0.078GB
>
docker ps
是CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e9b742c127a mongo:latest "/entrypoint.sh mong About an hour ago Up About an hour 0.0.0.0:27017->27017/tcp some-mongo
现在事情变得有点棘手,因为它们需要网络知识。
我如何从外部连接到它?
试过:
mongo localhost:27017
docker inspect some-mongo | grep IPAddress
"IPAddress": "172.17.0.12",
mongo 172.17.0.12:27017
mongo 0.0.0.0:27017
mongo 10.0.0.12:27017
mongo 192.168.3.124:27017
最佳答案
本地 Docker: (Linux)
来自 暴露通过 -p 27017:27017
连接到您的主机的端口您可以通过 Docker 主机本身的 IP 地址访问 MongoDB 服务。
假设您的 Docker 主机是 192.168.0.1
您可以使用该 IP 地址。
见:binding container ports to the host和 Connect using Network port mapping
非本地 Docker :(例如:OS X/Windows)
更新:以上响应适用于 Linux 上的 Docker;如果您通过类似 boot2docker 的方式使用 OS X您需要连接到 boot2docker 虚拟机的 IP 地址,您可以从 boot2docker
获得该 IP 地址。命令行界面:
$ boot2docker ip
192.168.59.103
关于networking - 如何从外部主机 (mac) 连接到 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187599/