设置端口的方式
EXPOSE: Dockerfile的指令
docker run -p, —publish
把容器的一个端口映射到本地主机的端口
docker run -p 3000:3000 -p 9229:9229 # 当然你可以映射不一样的端口
# 这种方式即使没有 EXPOSE 5858, 依然可以将容器的5858端口映射到本地主机的5858端口
docker run -p 5858
docker run -P, —publish-all
设置端口的3种方式的区别
如果没有设置 EXPOSE 或者 -p, 该容器的服务只能被自己访问。
如果只设置 EXPOSE, 该容器的服务不能从容器外部访问,但是其他容器可以访问,这适合容器间通信。
如果即设置了 EXPOSE 又设置了 -p, 该容器的服务从任何地方都可以访问,包括从容器外边。
参考
What is the difference between “expose” and “publish” in Docker?