我如何从外部主机 machine (mac) 连接到 docker
how can I connect to a docker from the outside host machine (mac)
我是 docker 的新手。
我有 运行 一个 docker 容器 mongo 运行 它(使用 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
暴露给您的主机,您可以通过[的IP地址访问MongoDB服务=43=]主机本身。
假设您的 Docker 主机是 192.168.0.1
您可以使用该 IP 地址。
参见:binding container ports to the host and Connect using Network port mapping
非母语 Docker:(例如:OS X/Windows)
更新: 以上回复是 Docker 在 Linux 上的回复;如果你通过 boot2docker 之类的东西在 OS X 上,你将需要连接到 boot2docker 虚拟机的 IP 地址,你可以从 boot2docker
CLI:
$ boot2docker ip
192.168.59.103
我是 docker 的新手。
我有 运行 一个 docker 容器 mongo 运行 它(使用 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
暴露给您的主机,您可以通过[的IP地址访问MongoDB服务=43=]主机本身。
假设您的 Docker 主机是 192.168.0.1
您可以使用该 IP 地址。
参见:binding container ports to the host and Connect using Network port mapping
非母语 Docker:(例如:OS X/Windows)
更新: 以上回复是 Docker 在 Linux 上的回复;如果你通过 boot2docker 之类的东西在 OS X 上,你将需要连接到 boot2docker 虚拟机的 IP 地址,你可以从 boot2docker
CLI:
$ boot2docker ip
192.168.59.103