猿问

docker不设置端口映射就不可以外部访问吗

在弄小米的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这个容器里面的某个项目的端口。
好奇怪。

喵喵时光机
浏览 2089回答 2
2回答

隔江千里

你还是没注意看命令host模式 host它可以与主机共享Root Network Namespace,容器有完整的权限操纵主机的网络配置,出于安全考虑,不推荐使用这种模式。 启动host模式非常简单,依旧是在docker run中加入--net=host参数即可。另外,还有none模式、container模式、bridge模式(默认模式)、overlay模式

杨魅力

--net选项已经设置了docker的网络network可以自定义网络,连接相同网络的docker可以相互通信。
随时随地看视频慕课网APP
我要回答