美文网首页
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