本文共 790 字,大约阅读时间需要 2 分钟。
在dockerfile 中通过EXPOSE暴露端口和在docker run --expose 暴露端口的作用是一样的,都是将端口暴露,但这个暴露的端口不依赖宿主机,默认情况下,我们无法通过这些端口访问宿主机,换句话说,也就是没有与宿主机的网络建立网络映射。
ip:hostPort:containerPort| ip::containerPort | hostPort:containerPort | containerPort
-p 指定发布特定端口的方式有四种,其发布的端口有两部分:
docker run -p 3000 my_image
如果运行时,只指定containerPort, 则宿主机的端口会随意指定,这种方式的好处是,让宿主机自主分配未占用的端口,防止手动指定端口,绑定端口已经被占用的情况
-expose/EXPOSE只暴露端口,不与宿主机建立网络映射;
-p: 暴露端口并建立网络映射因为EXPOSE通常只是作为记录机制,也就是告诉用户哪些端口会提供服务,Docker可以很容易地把Dockerfile里的EXPOSE指令转换成特定的端口绑定规则。只需要在运行时加上-P参数,Docker会自动为用户创建端口映射规则,并且帮助避免端口映射的冲突
docker inspect $container_id | $container_name
转载地址:http://mfktn.baihongyu.com/