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各版本选择问题。读者如果觉得这部分没意思,可跳过,直接看后面的安装步骤。【 跳转到安装部署部分】
(3)怎么这么多版本啊,有纯数字的,有纯英文单词的,有几个单词拼接一起的,也有数字拼单词的,看得眼花缭乱,如何选择?先关注两个关键词语: 和 。
- mainline:主线版,即开发版,学习环境可以使用,生产环境建议不要使用
- stable:稳定版,学习环境和生产环境都可使用
- alpine:即 Alpine Linux,是一个轻量级Linux发行版系统。
- perl:计算机编程语言,内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
- :包含最新的perl模块的稳定版,适合安装在Centos上。
- :包含最新的perl模块的稳定版,适合安装在Alpine Linux上。
- :不包含perl模块的稳定版,适合安装在Alpine Linux上。
- :包含最新的perl模块的稳定版,适合安装在Centos上。
2、创建四个stable版本容器。
2)查看下载的镜像。
查看容器运行情况:
进入到容器中(/bin/bash):
查看 perl 模块版本:
命令 exit 退出容器:
查看容器运行情况:
进入到容器中(/bin/bash):
查看 perl 模块版本:
命令 exit 退出容器:
查看容器运行情况:
进入到容器中(/bin/sh),:
查看 perl 模块版本:
命令 exit 退出容器:
查看容器运行情况:
进入到容器中(/bin/sh),:
查看 perl 模块版本:
命令 exit 退出容器:
3、大概对比Nginx这四个stable版本的差异。
总结如下:
(1)笔者专业技能有限,无法看出 版 和 版有什么区别,官方说好的 stable 版从 开始,在默认镜像中移除了 模块,怎么 stable 版的还存在?是笔者误读了官方的说法吗?
(2) 版确实了 模块。
(3) 版存在 perl 模块,且版本很新。
(4)stable-alpine 版和 stable-alpine-perl 版都可以运行在Centos7上,常不常用,笔者阅历有限,无法给出专业说法。
4、版本选择(求稳不求新)。
5、分析镜像各版本名称。
前面的版本选择问题分析好无聊啊,还是直接安装部署更过瘾。
1、创建三个目录,用作容器的卷(Volume),这步骤不能少。什么是卷?后面会说明。
2、笔者当时也是看了一些博文教程,操作过程中踩了坑,特来分享踩坑过程,如下步骤是错误的操作,先演示看效果,再来分析问题。
(1)创建一个简单的容器运行,映射端口为 ,看看有没有报错或者网络问题。
3、前面操作中,运行一个配置有卷(Volume)的容器为什么会访问不到页面呢,而运行简单的容器却可以访问呢?
4、正确地创建Nginx容器。
(1)创建一个更简单的容器,不用映射端口,因为后面还要删除该容器,只是临时有用。
- /etc/nginx: 和
- /var/log/:
- /usr/share/nginx/html/: 和
- /etc/nginx/conf.d:
(3)从容器中复制 目录所有文件到 目录下,复制配置文件 到 目录下,复制 目录所有文件到 目录下。
5、设置容器自启动。
6、容器的启动、停止、删除、重新启动、查看运行状态。
(1)启动容器
或
(2)停止容器
或
(3)删除容器
或
(4)重新启动容器
或
(5)查看容器运行状态
查看所有容器的运行状态,:
查看所有运行中的容器的状态,: