• 马哥博客作业第十周


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

    答:

    1)准备工作

    关闭防火墙

    关闭selinux

    安装好docker-ce,并准备好docker设置加速

    2)拉取centos7系统镜像

    docker pull centos:centos7.8.2003

    3)创建准备文件目录结构,方便后期镜像比较多可以进行分类

    [root@localhost ~]# mkdir /data/dockerfile/{system/{centos,ubuntu},web/{apache,nginx}} -pv

    [root@localhost ~]# cd /data/dockerfile/system/

    [root@localhost /data/dockerfile/system]# vim Dockerfile

    FROM centos:centos7.8.2003

    LABEL maintainer="liaolongxuan <root@liaolongxuan.com>"

    RUN 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-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel

    && yum clean all

    && rm -rf /etc/localtime

    && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    && rm -rf /var/cache/yum/*

    4)写个脚本执行构建

    [root@localhost /data/dockerfile/system]# cat build.sh

    #!/bin/bash

    TAG=$1

    docker build -t centos7-base:$TAG .

    授可执行权限

    [root@localhost /data/dockerfile/system]# chmod +x build.sh

    执行构建

    [root@localhost /data/dockerfile/system]#./build.sh v1.0

    5)制作Nginx编译镜像,宿主机下载有Nginx编译包并做好模板配置文件

    [root@localhost /data/dockerfile/web/nginx]# ll

    -rwxr-xr-x 1 root root 56 Aug 3 00:24 build.sh

    -rw-r--r-- 1 root root 400 Aug 3 21:26 Dockerfile

    -rw-r--r-- 1 root root 14 Aug 3 00:11 index.html

    -rw-r--r-- 1 root root 1032630 Aug 3 00:22 nginx-1.16.1.tar.gz

    -rw-r--r-- 1 root root 2680 Aug 3 21:17 nginx.conf

    修改配置并添加一行

    [root@localhost /data/dockerfile/web/nginx]# cat nginx.conf

    user www;

    worker_processes 1;

    daemon off; # 添加的这行,前台运行Nginx

    [root@localhost /data/dockerfile/web/nginx]# cat Dockerfile

    FROM centos7-base:v1.0

    LABEL maintainer="liaolongxuan <root@liaolongxuan.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 -s /sbin/nologin -M

    COPY nginx.conf /apps/nginx/conf/

    COPY index.html /apps/nginx/html/

    EXPOSE 80

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

    6)编写构建执行脚本

    [root@localhost /data/dockerfile/web/nginx]# vim build.sh

    #!/bin/bash

    TAG=$1

    docker build -t nginx-centos7:$TAG .

    7)授可执行权限

    [root@localhost /data/dockerfile/web/nginx]# chmod +x build.sh

    8)执行脚本构建镜像

    [root@localhost /data/dockerfile/web/nginx]# ./build.sh v1.0

    9)启动

    [root@localhost /data/dockerfile/web/nginx]# docker run -d -p 80:80 nginx-centos7:v1.0

    10)测试

    [ root@localhost ~]# curl 10.0.0.10

    Test is nginx

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

    答:

    FORM:指定基础镜像

    RUN:执行shell命令

    ADD:可以复制即可以解压缩包

    COPY:复制文件

    ENV:设置环境变量

    CMD:容器启动命令

    LABEL:指定镜像元数据,比如,镜像作者,邮箱等信息

    EXPOSE:暴露端口

    WORKDIR:指定工作目录

    USER:指定当前用户

    3.请写出dockerfile的分层原理

    答:

    Dockerfile通常会指定基础镜像,这个可以认为是系统层,复制文件、执行命令等操作时会生成新的镜像层,每层只记录本层所做的更改,而这些层都是只读的,当启动一个容器,Docker 会在最顶部添加读写层,用户在容器内做的所有更改,如写日志、修改、删除文件等,都保存到了读写层内,一般称该层为容器层。

  • 相关阅读:
    MSDN Visual系列:在SharePoint开发环境中配置CAML语法的智能感知
    学习SharePoint你需要什么?
    MSDN Visual系列:用WSSv3中的SPGridView控件来显示数据
    关于DataFormWebPart中CreatedModifiedInfo信息的分开使用
    MSDN Visual系列:在WSSv3中编程方式激活单个文档库的审核功能
    MOSS 2007基础:部署自定义WebPart
    MSDN Visual系列:编程激活SharePoint网站集的审计功能
    升级SharePoint数据库到SQL Server 2005的一点心得
    一个集WF/WCF/Silverlight/SharePoint技术于一身的东西
    MSDN Visual系列:WSSv3之权限提升
  • 原文地址:https://www.cnblogs.com/xuanlv-0413/p/13437165.html
Copyright © 2020-2023  润新知