zoukankan      html  css  js  c++  java
  • 马哥博客作业第十周

    1.通过dockerfile 制作centos系统镜像然后再制作 nginx编译镜像

      制作centos7系统镜像

    [17:45:38 root@aliyun /data/dockerfile/system/centos/centos7]#cat Dockerfile 
    FROM     centos:centos7.8.2003
    LABEL    maintainer="huangguangrui@163.com"
    RUN     yum install -y wget && rm -f /etc/yum.repos.d/*  
        && wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 
        && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 
        && yum install -y vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools bzip2 lsof 
            zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel 
            system-devel zlib-devel 
        && yum clean all 
        && rm -f /etc/localtime 
        && ln -s ../usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    [17:45:47 root@aliyun /data/dockerfile/system/centos/centos7]#cat build.sh 
    #!/bin/bash
    TAG=$1
    docker build -t centos7:$TAG .
    docker images

       基于centos7制作nginx编译镜像

    [19:05:11 root@aliyun /data/dockerfile/web/nginx/1.16.1]#tree
    .
    ├── build.sh
    ├── Dockerfile
    ├── index.html
    ├── nginx-1.16.1.tar.gz
    └── nginx.conf

    [19:05:14 root@aliyun /data/dockerfile/web/nginx/1.16.1]#cat Dockerfile
    FROM centos7:v1.0
    LABEL maintainer="huangguangrui@163.com"

    ADD nginx-1.16.1.tar.gz /usr/local/src

    RUN cd /usr/local/src/nginx-1.16.1
    && ./configure --prefix=/apps/nginx
    && make && make install
    && rm -rf /usr/local/src/nginx*
    && useradd -r nginx

    COPY nginx.conf /apps/nginx/conf/
    COPY index.html /apps/nginx/html/

    EXPOSE 80 443

    CMD ["/apps/nginx/sbin/nginx"]

    [19:05:33 root@aliyun /data/dockerfile/web/nginx/1.16.1]#cat build.sh
    #!/bin/bash
    TAG=$1
    docker build -t nginx-centos7:$TAG .
    docker images

    ...... 

      从镜像中启动容器测试

    [19:02:47 root@aliyun /data/dockerfile/web/nginx/1.16.1]#docker run -d --name n1 -p 80:80 nginx-centos7:v1.0 
    748472b63fea6a25cc2f4898d00be8f1cc1b7ffd5123493c316c89a92d1a422d
    [19:02:59 root@aliyun /data/dockerfile/web/nginx/1.16.1]#docker port n1
    80/tcp -> 0.0.0.0:80

     [19:10:03 root@aliyun /data/dockerfile/web/nginx/1.16.1]#curl 127.0.0.1
     <h1>nginx in docker for dockerfile</h1>

    2.写出10个常用的dockerfile 脚本参数及使用说明

    ADD           :复制和解包文件,如果复制的文件是一个压缩包,会自动解压到容器中指定目录,但URL不会解压,而且文件权限自动设置为600
    CMD           :容器启动命令,每个dockerfile里面有且只有一条CMD命令,若指定了多条,只有最后一条生效.
    COPY           :复制文本,将本地宿主机的文件复制到容器中 ENV           :定义环境变量 EXPOSE         :暴露端口,指定容器的映射端口 FROM           :指定基础镜像,必须要放在dockerfile文件的第一个非注释行 LABEL          :指定镜像元数据,比如镜像的作者等
    RUN            :执行shell命令,是用来在构建镜像阶段需要执行FROM指定镜像所支持的shell命令
    STOPSIGNAL       :退出同期的信号 USER           :指定当前用户 VOLUME          :挂载点,在本宿主机中创建一个挂载点,用来保存数据和存放数据库 WORKDIR        :指定工作目录,当容器运行后,进入容器的默认目录

    3.请写出dockerfile的分层原理

     分层在于方便编写,便于自定制业务系统镜像.更方便于排错.比如制定好了底层系统镜像,测试没有问题的话,再定制nginx业务镜像时出错,我们就可以把出差的范围定位到了定制nginx镜像上,减少排错时间和精力,节省时间成本等.再比如构建业务镜像过程中,可以灵活的定制化自己所需要的服务,和配置文件等.这样就不需要再重头开始一步步的制作镜像.

  • 相关阅读:
    极光推送的的栗子
    老师oracle讲义第五天
    oracle学习第五天
    ajax使用
    jstl标签的使用
    json使用
    jsp的el表达式使用
    老师oracle讲义第三天
    oracle学习第一天
    oracle学习第二天
  • 原文地址:https://www.cnblogs.com/huangguangrui/p/13420154.html
Copyright © 2011-2022 走看看