账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    docker不设置端口映射就不可以外部访问吗
    43
    0

    在弄小米的open-falcon,其中有个部件是从docker取回来的。
    按照教程,执行了docker的:

    # make the image,run commands under dir of dashboard:
    docker build -t falcon-dashboard:v1.0 .
    
    # start the container
    docker run -itd --name aaa --net host \
        -e API_ADDR=http://127.0.0.1:8080/api/v1 \
        -e PORTAL_DB_HOST=127.0.0.1 \
        -e PORTAL_DB_PORT=3306 \
        -e PORTAL_DB_USER=root \
        -e PORTAL_DB_PASS=123456 \
        -e PORTAL_DB_NAME=falcon_portal \
        -e ALARM_DB_PASS=123456 \
        -e ALARM_DB_HOST=127.0.0.1 \
        -e ALARM_DB_PORT=3306 \
        -e ALARM_DB_USER=root \
        -e ALARM_DB_PASS=123456 \
        -e ALARM_DB_NAME=alarms \
        falcon-dashboard:v1.0

    从上面命令中,并没有看到-p用于绑定端口映射的东西,但是不知为何,依然可以请求到docker这个容器里面的某个项目的端口。
    好奇怪。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ωo㊣②⑧經愛鉨 普通会员 1楼

      是的,如果你没有设置端口映射,Docker容器就无法被外部访问。端口映射是指将一个端口映射到一个宿主机的特定端口。这样,容器就可以从宿主机的特定端口接收请求,而不会暴露其他端口。

      例如,如果你有一个Docker容器,你想让它监听80端口,那么你可以在Dockerfile中添加以下行:

      Dockerfile EXPOSE 80

      这将把80端口映射到容器的80端口。现在,如果你启动一个容器,并运行一个访问80端口的URL,你就可以从浏览器中访问这个URL了。

      如果你想要Docker容器从宿主机的其他端口接收请求,你可以使用端口映射功能,但是这样做可能会带来安全风险,因为它使得容器可以监听宿主机的其他端口,而不仅仅是80端口。因此,通常情况下,我们只会在Docker容器中监听宿主机的特定端口。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部