• 第十周作业


    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,联合文件系统可以对每一层文件系统设置三种权限,只读、读写、和写出,但是镜像中每一层文件系统都是只读的,构建镜像的时候,从一个最基本的操作系统开始,每个构建提交的操作都相当于做一层的修改,增加了一层文件系统,一层层往上叠加,上层的修改会覆盖底层该位置的可见性。

      

  • 相关阅读:
    一起谈.NET技术,验证.NET强命称的思路和实例 狼人:
    一起谈.NET技术,基于SQL Server 2008 Service Broker构建企业级消息系统 狼人:
    一起谈.NET技术,一句代码实现批量数据绑定[下篇] 狼人:
    一起谈.NET技术,晚绑定场景下对象属性赋值和取值可以不需要PropertyInfo 狼人:
    一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(六)流光追影 狼人:
    一起谈.NET技术,ASP.NET下用URLRewriter重写二级域名 狼人:
    这样覆写Object类的toString方法对吗
    【Cocos2DX 】初窥门径(7)无限地图滚动
    poj2975——Caesar密码
    [置顶] poi最简单易学解析xls代码
  • 原文地址:https://www.cnblogs.com/guobang/p/13429642.html
Copyright © 2020-2023  润新知