zoukankan      html  css  js  c++  java
  • dockerfile构建Nginx镜像

    dockerfile构建Nginx镜像

    一、前期工作准备(前提是安装好docker)

    1.1、创建目录,用于存放dockerfile

    [root@node2 ~]# mkdir /app
    [root@node2 ~]# cd /app/
    #用于以后存放web服务器的目录
    [root@node2 app]# mkdir web/nginx -p && cd web/nginx 
    

    1.2、构建Dockerfile文件

    #构建之前我们先pull个镜像下来,等会基于这个镜像做nginx镜像
    [root@node2 ~]# docker pull centos:7.6.1810
    #构建的时候,不知道怎么写,或者命令不记得可以参考hub.docker.com上别人写好的
    ---
    ADD命令和COPY命令都可以往容器加东西,但是ADD会自动解压.tar.gz安装包,COPY原封不动拷贝过去
    Dockerfile 是分步执行的当你build前面5步,后面再添加新的命令,前面的会有记录,不会重新执行!
    ---
    

    1.3、build:

    [root@node2 nginx]# vim Dockerfile
    
    # Base images 基础镜像
    FROM centos:7.6.1810
    
    #作者名称
    LABEL maintainer="tzh <362777279@qq.com>"
    
    #执行下面命令,安装基础环境
    RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel vim
    
    #添加nginx到容器里
    ADD nginx-1.10.1.tar.gz /usr/local/src/
    
    #编译安装
    RUN cd /usr/local/src/nginx-1.10.1 && ./configure --prefix=/app/nginx --user=nginx --group=nginx --with-http_s
    tub_status_module && make && make install
    
    #全局变量设置
    ENV aaa 123456
    
    #做软链接
    RUN ln -s /app/nginx/sbin/* /usr/local/sbin/
    
    RUN useradd nginx
    
    #暴露端口
    EXPOSE 80 443 22
    
    #运行这个镜像,默认执行的命令,有多个CMD时,只有最后一个有效,前面的会被覆盖
    CMD ["nginx", "-g", "daemon off;"]
    
    ------当前目录,以及文件------
    [root@node2 nginx]# pwd
    /app/web/nginx
    [root@node2 nginx]# ls
    Dockerfile  nginx-1.10.1.tar.gz
    
    [root@node2 nginx]# docker build -t nginx:v2 .
    *
    *
    *
    Successfully built b044c844052b
    Successfully tagged nginx:v2
    [root@node2 nginx]# vim Dockerfile            
    FROM centos:7.6.1810
    #显示这个就成功了
    
    #可以进去看看
    [root@node2 nginx]# docker run --rm -it nginx:v3 bash
    
    #启动容器看看是否成功命令:CMD ["nginx", "-g", "daemon off;"]
    #能进去说明可以了
    [root@node2 nginx]# docker run  -it nginx:v4 bash
    
  • 相关阅读:
    GitLab配置SSH密钥
    axios访问本地模拟的json数据
    ODAC Windows 安装
    Linux tar命令
    Oracle INSTR使用
    js map方法的使用
    SessionState的几种设置
    C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
    Linux给用户添加sudo权限
    Linux 学习整理
  • 原文地址:https://www.cnblogs.com/hsyw/p/13636629.html
Copyright © 2011-2022 走看看