文章目录
构建Nginx镜像
1.Nginx安装步骤
2.Dockerfile文件编写
3.注意事项及dockerfile编写最佳实践
a、尽量让镜像文件更小
b、尽量减少Dockerfile指令
c、在测试中编写Dockerfile
d、Dockerfile常用指令
4.构建基础镜像(nginx)
5.以数据卷挂载方式启动nginx容器
a.创建本地目录,用于存放Nginx的相关文件信息
b.查看nginx-web运行容器信息
c.测试访问
清理残留文件,比如build完成后,要删掉源码包、yum缓存等。
因为我们知道,一个Dockerfile指令,就是一层镜像,我们使用shell里面的&&符号进行拼接成一行,让RUN指令尽可能少。
我们随便启动一个容器:docker run -it centos,进入容器后,就可以对我们写的Dockerfile指令进行逐行执行
基本上按照表格中的顺序进行编写
注意:命令最后面一个点,用于指定docker build的上下文,.为当前目录,就是在build镜像时,如果有涉及到需要拷贝文件之类的,都是从当前目录拷贝。
如上图可以看出,构建成功。
mkdir -p /data/nginx/www /data/nginx/logs /data/nginx/conf 其中: www: 目录将映射为 nginx 容器配置的虚拟目录。 logs: 目录将映射为 nginx 容器的日志目录。 conf: 目录里的配置文件将映射为 nginx 容器的配置文件。
[root@web build_dockerfile]# docker run -d -p 8818:80 --name nginx-web \ -v /data/nginx/www:/usr/local/nginx/html \ -v /data/nginx/conf/vhost:/usr/local/nginx/conf/vhost \ nginx:1.0 其中,相关命令行参数的含义。 --rm:容器终止运行后,自动删除容器文件;(这里没有使用) --name nginx-web:容器的名字叫做nginx-web,名字自行定义; -p: 端口进行映射,将本地 8818 端口映射到容器内部的 80 端口; -d:容器启动后,在后台运行 -v /data/nginx/www:/usr/local/nginx/html :将本地/data/nginx/www目录挂载到容器/usr/local/nginx/html目录上 -v /data/nginx/conf/vhost:/usr/local/nginx/conf/vhost :将本地/data/nginx/conf/vhost目录挂载到容器/usr/local/nginx/conf/vhost目录上这里日志没做挂载,自行操作!
在浏览器中打开http://IP:端口,效果如下
我们可以进入到虚拟目录下(/data/nginx/www/)做重新修改index.html文件,查看访问是否会发生变化!如果在访问时出现403错误,应该是index.html文件权限不足,给成644就行。
index.html内容如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Nginx test !!!</title> </head> <body> <h1>座右铭</h1> <p>机会远比安稳重要,事业远比金钱重要,未来远比今天重要。</p> </body> </html>实践是OK的,一切都是期望的样子!
