RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/local/src/KaTeX parse error: Expected 'EOF', got '&' at position 562: …_status_module &̲& make && make …PATH
EXPOSE 80/tcp
ENTRYPOINT [“nginx”]
CMD [“-g”,“daemon off;”]
构建镜像
docker build -t centos7:nginx .
运行容器
docker run -d --name nginx -p 8080:80 centos7:nginx
访问即可
http://IP:8080
#### 二,详细介绍使用的模块
#基准镜像
FROM centos:7
#作者信息
LABEL version=“nginx v1”
LABEL “emill”=“243254384@qq.com”
#调整系统时间差
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#工作目录
WORKDIR /usr/local/src/
#定义环境变量
ENV NG_VERSION nginx-1.21.0
#安装epel仓库
RUN yum -y install epel-release
#安装wget
RUN yum -y install wget
#下载nginx文件并解压
RUN wget http://nginx.org/download/$NG_VERSION.tar.gz && tar xzvf KaTeX parse error: Expected 'EOF', got '#' at position 20: …ERSION.tar.gz #̲安装编译依赖包 RUN yum…NG_VERSION
#编译安装nginx
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install
#复制测试页面到容器中
ADD index.html /usr/local/nginx/html
#设置容器中要挂在到宿主机的目录
VOLUME /usr/local/nginx/html
#设置sbin环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
#暴露80端口
EXPOSE 80/tcp
ENTRYPOINT [“nginx”]
CMD [“-g”,“daemon off;”]
#当ENTRYPOINT和CMD连用时,CMD的命令是ENTRYPOINT命令的参数,两者连用相当于nginx -g "daemon off;"而当一起连用的时候命令格式最好一致(这里选择的都是json格式的是成功的,如果都是sh模式可以试一下)
##### 1.FROM
功能为指定基础镜像,并且必须是第一条指令。 如果不以任何镜像为基础,那么写法为:FROM scratch。 同 时意味着接下来所写的指令将作为镜像的第一层开始
##### 2.RUN
功能为运行指定的命令
注意:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层. 多少个RUN就构建了多 少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错。 RUN书写时的换行 符是\
##### 3.CMD
功能为容器启动时要运行的命令
注意:补充细节:这里边包括参数的一定要用双引号,就是",不能是单引号。千万不能写成单引号。 原因是参数传递后,docker解析的是一个JSON array
##### 4.RUN和CMD的区别
不要把RUN和CMD搞混了。 RUN是构件容器时就运行的命令以及提交运行结果 CMD是容器启动时执行的命 令,在构件时并不运行,构件时紧紧指定了这个命令到底是个什么样子
##### 5.LABEL
功能是为镜像指定标签,为镜像写一些注释信息
但是并不建议这样写,最好就写成一行,如太长需要换行的话则使用\符号 如下:
注意:LABEL会继承基础镜像种的LABEL,如遇到key相同,则值覆盖
##### 6.EXPOSE
功能为暴漏容器运行时的监听端口给外部 但是EXPOSE并不会vim 使容器访问主机的端口 如果想使得容器与主 机的端口有映射关系,必须在容器启动的时候加上 -P参数
注意:如果在端口号后面加/tcp,默认为tcp协议,如果需要UDP端口需要添加/udp
##### 7.ENV
功能为设置环境变量
##### 8.ADD
一个复制命令,把文件复制到镜象中。 如果把虚拟机与容器想象成两台linux服务器的话,那么这个命令就类似 于scp,只是scp需要加用户名和密码的权限验证,而ADD不用。
注意:尽量不要把写成一个文件夹,如果是一个文件夹了,复制整个目录的内容,包括文件系统元数据
##### 9.WORKDIR
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/97b52b2aa7da20b706a6f5d659edec68.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/77d7f852f10c4848f7c178a99bd6d738.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
给大家整理的视频资料:
[外链图片转存中...(img-b8vwpvyf-1718917536882)]
给大家整理的电子书资料:
[外链图片转存中...(img-RqfqHn6q-1718917536883)]
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**