现在的位置: 首页 > web前端 > 正文

dockerfile 中的EXPOSE的含义

2020年07月16日 web前端 ⁄ 共 1021字 ⁄ 字号 评论关闭

  使用本地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的含义给大家简单的介绍了一些,希望大家多看看。

抱歉!评论已关闭.