networking - 如何从外部主机 (mac) 连接到 docker

标签 networking docker

我是 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 hostConnect 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/

    相关文章:

    java - 处理去同步

    ruby-on-rails - 套接字错误 : Failed to open TCP connection to rubygmes. 组织:443

    linux - shell 脚本: How to calculate the number of bytes transmitted on a network from a single network intense application?

    python - 如何连接到http ://localhost:9000/api/v1/data from jupyter in docker

    docker - 如何在 docker 中处理 web 应用程序的文件?

    docker - 如何使用Docker部署应用程序撰写到kubernetes

    Docker for Windows 不适用于卷

    networking - sshed 时将文件下载到本地驱动器

    networking - 使用lua读取pcap文件

    python - Python 网络编程入门