• Dockerfile


    目录

    一、镜像构建步骤

    二、dockerfile简介

    三、DockerFile构建过程

    3.1基础知识:

    3.2流程:

    3.3Dockerfile指令

    四、实战测试

    4.1、编写DockerFile文件

    4.2、构建

    4.3、运行

    4.4、列出镜像地的变更历史


    一、镜像构建步骤

    1、编写DockerFile文件

    2、docker build 构建镜像

    3、docker run

    二、dockerfile简介

              Dockerfile是用来构建Docker镜像的构建文件,是由一系列的命令和参数构成的脚本。
    Dockericon-default.png?t=N7T8https://hub-stage.docker.com/_/centos

    说明:

            从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,*Dockerfile是软件的原材料*Docker镜像是软件的交付品*Docker容器则可以认为是软件的运行态。Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者不可,合力充当Docker体系的基石。

    DockerFile:需要定义一个DockerFile,DockerFile定义了进程需要的一切东西。DockerFile涉及的内容 包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进 程和内核进程(当引用进行需要和系统服务和内核进程打交道,这时需要考虑如何设计 namespace的权 限控制)等等。

    Docker镜像:在DockerFile 定义了一个文件之后,Docker build 时会产生一个Docker镜像,当运行 Docker 镜像时,会真正开始提供服务;

    Docker容器:容器是直接提供服务的。

    三、DockerFile构建过程

    3.1基础知识:

    1、每条保留字指令都必须为大写字母且后面要跟随至少一个参数

    2、指令按照从上到下,顺序执行

    3、# 表示注释

    4、每条指令都会创建一个新的镜像层,并对镜像进行提交

    3.2流程:

    1、docker从基础镜像运行一个容器

    2、执行一条指令并对容器做出修改

    3、执行类似 docker commit 的操作提交一个新的镜像层

    4、Docker再基于刚提交的镜像运行一个新容器

    5、执行dockerfile中的下一条指令直到所有指令都执行完成

    3.3Dockerfile指令

    关键字:

    补充:CMD 和 ENTRYPOINT 的区别

    两个命令都是指定一个容器启动时要运行的命令

    CMD:Dockerfile 中可以有多个CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数 替换!

    ENTRYPOINT: docker run 之后的参数会被当做参数传递给 ENTRYPOINT,之后形成新的命令组合

    四、实战测试

    自定义一个centos

    目的:使自己的镜像具备条件有登录后的默认路径为/usr/local

    4.1、编写DockerFile文件

    1. [root@zhoujunru home]# mkdir dockerfile-test
    2. [root@zhoujunru home]# vi mydockerfile-centos
    3. [root@zhoujunru home]# cat mydockerfile-centos
    4. FROM centos
    5. MAINTAINER zhoujunru<3271999416@qq.com>
    6. ENV MYPATH /usr/local
    7. WORKDIR $MYPATH
    8. EXPOSE 80
    9. CMD /bin/bash

    4.2、构建

    docker build -f dockerfile地址 -t 新镜像名字:TAG .

    . 表示当前目录

    1. [root@zhoujunru home]# docker build -f mydockerfile-centos -t mycentos:0.1 .
    2. Sending build context to Docker daemon 2.56 kB
    3. Step 1/6 : FROM centos
    4. ---> 5d0da3dc9764
    5. Step 2/6 : MAINTAINER zhoujunru<3271999416@qq.com>
    6. ---> Using cache
    7. ---> 227572c337d6
    8. Step 3/6 : ENV MYPATH /usr/local
    9. ---> Using cache
    10. ---> c0e6f2f9628f
    11. Step 4/6 : WORKDIR $MYPATH
    12. ---> Using cache
    13. ---> 5a618332615f
    14. Step 5/6 : EXPOSE 80
    15. ---> Running in 98dd7b875f44
    16. ---> d17549a1f692
    17. Removing intermediate container 98dd7b875f44
    18. Step 6/6 : CMD /bin/bash
    19. ---> Running in e598a9e14617
    20. ---> 1419d5744180
    21. Removing intermediate container e598a9e14617
    22. Successfully built 1419d5744180

    4.3、运行

    docker run -it 新镜像名字:TAG

    1. [root@zhoujunru home]# docker run -it mycentos:0.1
    2. [root@5e53489ddd40 local]# ls
    3. bin etc games include lib lib64 libexec sbin share src
    4. [root@5e53489ddd40 local]# pwd
    5. /usr/local

    可以看到,自己构建的镜像登录后默认的路径为/usr/local

    4.4、列出镜像地的变更历史

    docker history 镜像名

    1. [root@zhoujunru home]# docker history mycentos:0.1
    2. IMAGE CREATED CREATED BY SIZE COMMENT
    3. 1419d5744180 About a minute ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/b... 0 B
    4. d17549a1f692 About a minute ago /bin/sh -c #(nop) EXPOSE 80/tcp 0 B
    5. 5a618332615f About a minute ago /bin/sh -c #(nop) WORKDIR /usr/local 0 B
    6. c0e6f2f9628f About a minute ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0 B
    7. 227572c337d6 About a minute ago /bin/sh -c #(nop) MAINTAINER zhoujunru<32... 0 B
    8. 5d0da3dc9764 2 years ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
    9. <missing> 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.... 0 B
    10. <missing> 2 years ago /bin/sh -c #(nop) ADD file:805cb5e15fb6e0b... 231 MB

  • 相关阅读:
    nohup命令后台启动jar包
    Web自动化测试进阶:网页中难点之等待机制 —— 强制等待,隐式等待
    go语言实现心跳机制样例
    数据安全系列(2):单向散列函数概念
    Reg注册表读写
    [大师C语言(第十八篇)]C语言typedef背后技术详解
    势能线段树专题
    LeetCode——动态规划篇(六)
    手记系列之五 ----- SQL使用经验分享
    权限 chmod
  • 原文地址:https://blog.csdn.net/qq_56104175/article/details/136786887