【问题标题】:Docker EXPOSE a port only to HostDocker 仅向主机公开一个端口
【发布时间】:2014-02-28 16:29:59
【问题描述】:

docker 是否能够将端口只暴露给主机而不暴露给外部。

我需要放置一个运行mongo数据库的docker,我希望它只能从主机访问,但我需要链接主机端口27017。

这可能吗,还是唯一可能的方法是更改​​防火墙定义?

【问题讨论】:

    标签: docker


    【解决方案1】:

    当然,只需将其绑定到localhost,如下所示:

    docker run -p 127.0.0.1:27017:27017

    另外:您的主机也可以通过其 IP 与每个容器正常通信。使用 docker inspect $ID 获取包含网络 IP 的 json 转储(除其他内容外)。

    【讨论】:

    • 是不是类似于 [1] docker run -p 27017:27017 -v /var/lib/mongodb/master:/data mongo:storage_test /usr/bin/start-mongo [2] docker run -p 127.0.0.1:27017:27017 ...?
    • 第二个选项绑定到本地主机,是的。第一个使端口公开可用。如果您不想要静态端口,请使用127.0.0.1::27017
    • 此解决方案似乎适用于集群模式,请参阅this github issue
    • 是等效的 docker-compose 只是 service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
    • 我的 docker-compose 中的问题是什么,虽然只绑定到本地主机,但它是可公开访问的。 stackoverflow.com/questions/50621936/…
    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2020-11-18
    • 2021-04-24
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多