zoukankan      html  css  js  c++  java
  • 第十周作业

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

      制作centos镜像

    vim Dockerfile

    FROM centos:centos7.8.2003

    LABEL maintainer="duan"

    RUN rm -f /etc/localtime && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
        yum -y install wget && rm -rf /etc/yum.repos.d/* &&
        wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo http://mirrors.aliyun.com/repo/epel-7.repo &&
        yum -y install  vim iproute net-tools psmisc vim-enhanced tcpdump tree telnet bash-completion
        net-tools wget bzip2 lsof zip unzip nfs-utils &&
        rm -rf /var/cache/yum/* &&
         useradd -u 88 www

    docker bulid  -t centos7:v1.0 -f Dockerfile

      制作nginx编译镜像

    vim Dockerfile

    FROM centos7:v1.0

    LABEL maintainer="duanergou"
    WORKDIR /usr/local/src/nginx-1.18.0
    ENV VERSION="1.0" DATE='2020-08-01'
    RUN mkdir /data/ && touch /data/test${DATE}_${VERSION}
    COPY Centos-7.repo /etc/yum.repos.d/
    COPY env.ss bulid.sh  /d1/
    #ADD http://nginx.org/download/nginx-1.18.0.tar.gz /data/
    ADD  nginx-1.18.0.tar.gz /usr/local/src/
    RUN yum -y update && yum  install -y cmake pcre pcre-devel openssl openssl-devel gd-devel
        zlib-devel gcc gcc-c++ net-tools iproute telnet wget curl &&
        yum clean all &&
        rm -rf /var/cache/yum/*
    RUN ./configure && make && make install
    ENV PATH $PATH:/usr/local/nginx/sbin
    CMD ["nginx","-g","daemon off;"]
    EXPOSE 80

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

     

      FROM 就是指定基础镜像,此指令必须放在Dockefile文件第一非注释行。后续的指令都是运行于此基准镜像所提供的运行环境

      LABEL 可以指定镜像元数据,如:镜像作者等

      RUN 指令用来在构建镜像阶段需要执行FROM指定镜像所支持的shell命令

      ENV 可以定义环境变量和值,会被后续指令进行引用,并在容器运行时保持

      COPY 复制本地宿主机的文本到容器中

      ADD 该命令可认为是增强版的COPY,不仅支持COPY,还支持解压缩。

      CMD 用来指定启动容器时默认执行的一个命令,且其运行结束后,容器也会停止,所以一般CMD指定的命令为持续运行且为前台命令

      ENTRYPOINT 功能类似于CMD,配置容器启动后执行的命令和参数

      ARG 如果和ENV同名,ENV覆盖ARG变量,和ENV不同的是,容器运行时不会存在这些环境变量

      VOLUME 在容器中创建一个可以从本地主机或其他容器挂载的挂载点。

      EXPOSE 指定服务端的容器需要对外暴露的端口号,以实现容器与外部通信

      WORKDIR 为后续的RUN CMD ENTRYPOINT指令配置工作目录,当容器运行后,进入容器内的默认目录

      ONBUILD 可以用来配置当构建当前镜像的子镜像时,会自动触发执行的指令,但在当前镜像构建时,并不会执行

      USER  指定运行容器时的用户名或UID,后续的RUN也会使用指定用户

      HEALTHCHECK 检查容器的健康性

      STOPSIGNAL 设置将被发生到容器退出的系统调用信号

     

    3.请写出dockerfile的分层原

      dockerfile镜像里面是一层层的文件系统,叫做Union FS(联合文件系统),联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统,虚拟文件系统的目录结构就像普通linux的目录结构一样,镜像通过这些文件在加上宿主机的内核共同提供了一个linux的虚拟环境,每一层文件系统叫做一层layer,联合文件系统可以对每一层文件系统设置三种权限,只读、读写、和写出,但是镜像中每一层文件系统都是只读的,构建镜像的时候,从一个最基本的操作系统开始,每个构建提交的操作都相当于做一层的修改,增加了一层文件系统,一层层往上叠加,上层的修改会覆盖底层该位置的可见性。

      

  • 相关阅读:
    ensp上防火墙上配置nat
    简单介绍oracle误删除表和表数据的恢复方法
    linux基本命令介绍(二)
    linux基本命令介绍(一)
    Vsan分布式文件系统逻辑架构损坏恢复过程
    iPhone手机硬件拆解介绍
    硬盘分区损坏导致SqlServer数据丢失怎么恢复
    安卓手机密码工作原理及破解方式
    EMC UNITY 400存储卷删除数据恢复案例
    服务器2块硬盘掉线的数据恢复过程分享
  • 原文地址:https://www.cnblogs.com/guobang/p/13429642.html
Copyright © 2011-2022 走看看