美文网首页
Docker Nginx基础镜像制作

Docker Nginx基础镜像制作

作者: zouhao1985 | 来源:发表于2022-11-16 20:43 被阅读0次

1.概述

Nginx也是一个很经常用到的基础镜像,不过一般都用官方的Nginx镜像,该章节内容不如JDK和Tomcat镜像制作实用,但是作为一名技术人员,多学习一点总是有益。

2.常用命令复习

# 查看正在运行的镜像进程
docker ps 
# 查看所有的镜像进程,包括失败的
docker ps -a
# 停止一个容器
docker stop xxx
# 启动一个容器
docker start yyy
# 删除一个容器
docker rm xxx
# 删除镜像
docker rmi xxx

# 打包镜像,标签为nginx:1.22.1
docker build . -t nginx:1.22.1
docker build -f /path/file . -t nginx:1.22.1
# 运行标签为nginx:1.22.1的镜像
docker run -d -p 80:80 nginx:1.22.1
docker run -d -p 80:80 -v data-nginx:/usr/local/nginx/html nginx:1.22.1

file://wsl%24/docker-desktop-data/version-pack-data/community/docker/volumes/data-nginx/

资源管理器输入以上地址找到本地卷

3.编写Dockerfile

第一稿先能运行,参数不讲究。第一稿的安装包依赖通过网络下载,如果不能通过网络下载制作,会比较麻烦。这里nginx安装路径为/usr/local/nginx

# 基础镜像 
FROM centos:7
# 维护人员、开发人员
MAINTAINER zouh
# 设置上海时区,即北京时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 文件放在当前目录下,拷过去会自动解压
ADD nginx-1.22.1.tar.gz /usr/local/
# 安装依赖包
RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

RUN mkdir /usr/local/nginx

WORKDIR /usr/local/nginx-1.22.1

RUN ./configure \
    && make \
    && make install
    
EXPOSE 80 443
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]  

使用如下命令启动nginx,本地通过http://127.0.0.1访问。

docker run -d -p 80:80 nginx:1.22.1

4.文件映射到本地磁盘

包含页面文件和nginx的配置文件

docker run -d -p 80:80 -v data-nginx:/usr/local/nginx/html -v conf-nginx:/usr/local/nginx/conf nginx:1.22.1

5.使用普通用户启动nginx

重新写一份dockerfile

# 基础镜像 
FROM centos:7
# 维护人员、开发人员
MAINTAINER zouh
# 设置上海时区,即北京时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 新建用户组和用户
RUN groupadd  nginxgroup
RUN useradd -d /home/nginxuser -s /bin/bash -m nginxuser -g nginxgroup
# 文件放在当前目录下,拷过去会自动解压
ADD nginx-1.22.1.tar.gz /home/nginxuser/
# 安装依赖包
RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

RUN mkdir /home/nginxuser/nginx

WORKDIR /home/nginxuser/nginx-1.22.1

RUN ./configure \
    --prefix=/home/nginxuser/nginx \
    && make \
    && make install
# 修改权限  
RUN chown nginxuser:nginxgroup -R /home/nginxuser/nginx 
    
USER nginxuser
EXPOSE 80 443
CMD ["/home/nginxuser/nginx/sbin/nginx","-g","daemon off;"] 

制作镜像

docker build . -t nginx:1.22.1-OP-0.2

运行镜像

docker run -d -p 80:80 -v data-nginx:/home/nginxuser/nginx/html -v conf-nginx:/home/nginxuser/nginx/conf nginx:1.22.1-OP-0.2

6.参考总结

https://www.jianshu.com/p/58d647c62439

相关文章

网友评论

      本文标题:Docker Nginx基础镜像制作

      本文链接:https://www.haomeiwen.com/subject/wdldtdtx.html