一、前言
Nginx官方安装包下载地址:
http://nginx.org/en/download.html
Docker Hub官方网址:
https://hub.docker.com/
如果需要了解Centos7下Docker的安装部署,可参考教程【最新Docker在Centos7下安装部署(参考官方教程文档)】。
拉取Nginx Docker版镜像的最简单的命令是:docker pull nginx ,麻烦一点写法是 docker pull nginx:1.22.1 ,后面带一个版本号,拉取指定版本的镜像。如果看一些博文,教程里面就是这么写的,难道有错?没错,这样写是可以的,但是,那些博主可不会告知你们,如何区分版本,Docker Hub中Nginx是有很多版本类型的,他们也未必研究过Docker中Nginx各版本的区别,只是照搬官方的写法而已!
本教程除了详细指导在Docker中安装最新稳定版Nginx过程,还分析一些版本选择问题,网上基本很少或没有相关博文讨论过Docker中Nginx版本的选择问题。最后还有踩坑过程也分享出来。如果各位读者有更好的见解,可以关注 @大白有点菜 或在评论中交流,互相学习进步。
本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错,请点点赞,加关注,谢谢!
二、版本选择问题分析
1、先来分析Docker中Nginx各版本选择问题。读者如果觉得这部分没意思,可跳过,直接看后面的安装步骤。【 跳转到安装部署部分】
(1)浏览Docker Hub网址,即Docker的仓库,搜索关键字 nginx 查找Nginx的版本(和官方Nginx的版本是同步的)。
(2)点击第一个,进入到 Nginx 相关页面,包括一些 版本介绍
和 安装教程
(在页面的下半部分)。
https://hub.docker.com/_/nginx
(3)怎么这么多版本啊,有纯数字的,有纯英文单词的,有几个单词拼接一起的,也有数字拼单词的,看得眼花缭乱,如何选择?先关注两个关键词语:mainline
和 stable
。
- mainline:主线版,即开发版,学习环境可以使用,生产环境建议不要使用
- stable:稳定版,学习环境和生产环境都可使用
(4)切换到“Tags”标签,看看Nginx的具体版本,按最新版本排序。
(5)本教程的核心是安装最新稳定版Nginx,mainline版不过多介绍,主要介绍stable版。目前官网上有四个稳定版本:stable-perl
、stable-alpine-perl
、stable-alpine
、stable
。它们有什么区别呢?从稳定版本名称分解得到两个单词:alpine
和 perl
,这两个单词又代表什么意思呢?
- alpine:即 Alpine Linux,是一个轻量级Linux发行版系统。
- perl:计算机编程语言,内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
【百度百科解释 Alpine Linux】
【维基百科解释 Alpine Linux】
【百度百科解释 Perl】
【维基百科解释 Perl】
从上面的专业解释可以作出以下猜测:
stable-perl
:包含最新的perl模块的稳定版,适合安装在Centos上。stable-alpine-perl
:包含最新的perl模块的稳定版,适合安装在Alpine Linux上。stable-alpine
:不包含perl模块的稳定版,适合安装在Alpine Linux上。stable
:包含最新的perl模块的稳定版,适合安装在Centos上。
猜测是正确的吗?查阅资料可知,perl模块是默认安装在Centos系统上的,如下,版本为 v5.16.3 。
2、创建四个stable版本容器。
(1)在Docker Hub官网对应的Nginx页面,有个描述是关于 nginx:<version>-perl
、 nginx:<version>-alpine-perl
、 nginx:<version>-alpine
的,截图如下,顺便附上谷歌翻译后的截图: