首先下载nginx镜像
在xshell中连接centos
输入如下命令
docker pull nginx:1.17-alpine
其中:冒号是必须的 表示是一个标签
后面是官方的nginx镜像版本(基于alpine的)
接下来使用docker images查看下载的镜像
如下图所示
![](https://img.haomeiwen.com/i2509361/6d02a22c744fd39a.png)
可以看见我们下载的nginx镜像只有20.5M 非常小
我们可以在这个镜像里面创建一个容器 容器创建好以后相当于我们已经部署好了nginx
这是当下比较流行的做法
接下来对镜像进行启动一个容器 (启动一个容器 因为这个镜像仅仅是类似于光盘 买回来以后需要启动我们的虚拟机)虚拟机启动方式如下 docker run 表示启动一个容器(类似于vmvare创建一个虚拟机的过程)
![](https://img.haomeiwen.com/i2509361/391884b3df9ec41e.png)
执行如下命令 启动容器
docker run --name ngx -d -p 80:80
nginx:1.17-alpine
其中 docker run 表示启动一个容器 --name ngx 表示指定容器名字为ngx
-d表示后台运行 -p表示映射端口 nginx默认端口为80
在外部如果希望通过windows来访问 使用虚拟机ip加上80端口即可访问 不需要访问容器的ip
接下来执行docker ps查看下当前运行的所有容器
![](https://img.haomeiwen.com/i2509361/19548a0d33d1744e.png)
容器启动在这里好比虚拟机启动一样 我们可以通过一定的方式对其进行操作
可以使用如下命令
docker exec
exec代表使用docker运行容器里面的某一个命令 这个命令可以执行bash alpine这个系统中默认没有bash
所以这里可以这样写
docker exec -it ngx bash
其中-it表示已交互式方式执行
运行结果如下
![](https://img.haomeiwen.com/i2509361/f32a8ada1fe48464.png)
提示找不到bash
所以我们这里使用原始的sh方式(可以搞定大部分情况 后面也可以安装bash)
docker exec -it ngx sh(回车 好比进入了容器的终端 如下)
![](https://img.haomeiwen.com/i2509361/415ac067187c4f64.png)
ls查看下
![](https://img.haomeiwen.com/i2509361/7804312781ac4532.png)
接下来执行nginx -v
![](https://img.haomeiwen.com/i2509361/a04d378f38273375.png)
nginx -t 查看配置文件是否ok 以及位置
![](https://img.haomeiwen.com/i2509361/febf10103ecd17d3.png)
可以看见docker在安装nginx时将配置文件指定在/etc/nginx/目录下了
接下来进入这个目录看下配置文件
![](https://img.haomeiwen.com/i2509361/fe367500263c129b.png)
可以看见里面有很多配置文件 最基本的就是nginx.conf文件
我们需要在外部映射一个文件(就是映射这个配置文件) 我们就可以在物理机上去修改配置文件 docker里面的配置文件也会做相应的修改
接下来简单看下nginx.conf文件
![](https://img.haomeiwen.com/i2509361/df98da6fa96ab906.png)
可以发下如下内容
![](https://img.haomeiwen.com/i2509361/b3cbba817b1ae0b2.png)
这里暂时对配置优化跳过 主要看下基本的主要配置 针对这些配置做些实战的业务功能
其中我们会重点学习下http模块
在nginx里面 以模块的方式存在各种各样的功能 可以使用c语言来自己编写一些模块
模块里面有一些基本的指令和内置变量(include用来包含文件)
nginx里面有一个server配置节点
接下来我们退出vi编辑器
来到conf.d文件夹
ls查看
![](https://img.haomeiwen.com/i2509361/9c74d081883b806b.png)
可以发现一个default.conf文件
vi default.conf 查看下
如下
![](https://img.haomeiwen.com/i2509361/fb79c6e5f8d8dc8e.png)
出现了server配置节点
后面我们会逐一详细讲解里面的意思以及如何配置
里面有个最基本的location配置节点
里面有两个节点 root表示根目录位置(静态资源网站) index表示起始页
![](https://img.haomeiwen.com/i2509361/99e5f7c9775d1535.png)
接下来我们退出vi编辑器
cd进入到root配置节后面的目录
![](https://img.haomeiwen.com/i2509361/4556ec00001f0dd2.png)
ls查看下
![](https://img.haomeiwen.com/i2509361/31388669e3e0309e.png)
可以发现有个默认的首页
接下来把配置文件拷贝到物理机上
(后面需要在物理机上进行修改 然后把它映射到容器里面 然后重启容器 配置文件的修改就生效了)
接下来ctrl+d退出 来到物理机
![](https://img.haomeiwen.com/i2509361/364a1ffc4c59d1c1.png)
出现如上表示我们进入到了物理机
首先创建个文件加 myngx
![](https://img.haomeiwen.com/i2509361/c4e9205beb79e791.png)
使用docker cp 表示从容器里面(ngx)拷贝一个文件
把容器里面的(ngx)容器里面的 /etc/nginx/nginx.conf 文件 拷贝到 myngx文件加下
docker cp ngx:/etc/nginx/nginx.conf myngx
![](https://img.haomeiwen.com/i2509361/1b92811c9f770b59.png)
可以发现出现了容器里面的conf配置文件
下节将会对其进行修改并逐步了解里面的核心模块以及自定义增加的嵌入式脚本开发
网友评论