dockerfile中EXPOSE的含义是什么
这篇文章给大家分享的是有关dockerfile中EXPOSE的含义是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
使用本地dockerfile构建镜像,dockerfile的内容:EXPOSE3000构建完成后执行:dockerrun-p3000:3000-dnginx:v0在浏览器中输入localhost:3000,访问不到服务。
关于EXPOSE的解释
EXPOSE指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。
好想明白了,你理解的EXPOSE和权威给出的解释不是一个意思。
nginx运行的时候对外提供的端口默认是80,即便你在这里声明了3000,也不会改变默认的端口80。
这个EXPOSE毛线用都没有,一般是镜像创建者书写的,一旦写错了,就会误导用户,将人带到坑里。
因此,在声明EXPOSE的时候,一定要实现查明当前容器默认的服务端口。
dockerfile中的EXPOSE的含义
怎么查nginx默认的端口呢?取nginx.config文件中去查。
首先进入到nginx容器中:dockerexec-it412a3bcbac7f/bin/bash
然后查询nginx配置文件:whereisnginx.config
进入配置文件cd/etc/nginx所在目录,查看nginx.config文件文件
http{
include/etc/nginx/mime.types;
default_typeapplication/octet-stream;
log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
'$status$body_bytes_sent"$http_referer"'
'"$http_user_agent""$http_x_forwarded_for"';
access_log/var/log/nginx/access.logmain;
sendfileon;
#tcp_nopushon;
keepalive_timeout65;
#gzipon;
include/etc/nginx/conf.d/*.conf;
}
没有找到端口,但是在文件尾部存在include/etc/nginx/conf.d/*.conf;
直接查看这个文件。
感谢各位的阅读!关于"dockerfile中EXPOSE的含义是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!