千家信息网

dockerfile中EXPOSE的含义是什么

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章给大家分享的是有关dockerfile中EXPOSE的含义是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用本地dockerfile构建镜像,dockerfi
千家信息网最后更新 2024年11月28日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的含义是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0