我如何从外部主机 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

现在事情变得有点棘手,因为它们需要网络知识。

如何从外部连接到它?

尝试过:

  1. mongo localhost:27017

  2. docker inspect some-mongo | grep IPAddress "IPAddress": "172.17.0.12", mongo 172.17.0.12:27017

  3. mongo 0.0.0.0:27017

  4. mongo 10.0.0.12:27017
  5. 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