zoukankan      html  css  js  c++  java
  • Docker 之Dockerfile

    一 Dockerfile 简介

    •Dockerfile其实就是根据特定的语法格式撰写出来的一个普通的文本文件

    •利用docker build命令依次执行在Dockerfile中定义的一系列命令,最终生成一个新的镜像(定制镜像)

    二 Dockerfile 示例与使用

    2.1 Dockerfile参考示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mkdir dockerfile_test
    cd dockerfile_test
    vim Dockerfile

    # Test
    # VERSION 0.01
    FROM ubuntu
    RUN echo 'hello world'
    CMD ["echo","this is image create by lqz"]

    docker build # 构建

    2.2 Dockerfile使用命令 – docker build

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 作用:
    根据dockerfile创建镜像
    # 命令格式:
    docker build [OPTIONS] PATH | URL | -
    # 命令参数:
    PATH Dockerfile所在路径(文件夹路径),文件名必须是Dockerfile
    URL Dockerfile所在URL地址

    OPTIONS:
    -t, --tag list 为镜像设置名称和tag
    -f, --file string 指定Dockerfile的路径(这是可以使用其他名称命名Dockerfile)

    三 Dockerfile 特征

    3.2 Dockerfile 构建特征

    查看官方的Dockerfile:https://github.com/docker-library/docs

    image-20200331010717593

    •Dockerfile必须具备一个FROM命令来进行构建

    •每一个Dockerfile命令都会构建一层镜像(本质上是每一层都会启动一个容器,执行完命令后,将容器进行提交后,产生新的镜像层)

    •通过查看下载下来的镜像,发现历史层信息的层ID是missing,其实是因为原本的层id只存在于构建镜像的宿主机上,一旦转移镜像后,历史层消息中将只保留最新一层的ID

    四 Dockerfile 命令概述

    4.1 Dockerfile 命令概述(一)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    FROM: 指定基础镜像
    RUN: 构建镜像过程中需要执行的命令。可以有多条。docker build
    CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。
    ENTRYPOINT:同CMD,但这个一定会被执行,不会被覆盖修改。
    :为镜像添加对应的数据。
    MLABELAINTAINER:表明镜像的作者。将被遗弃,被LABEL代替。
    EXPOSE:设置对外暴露的端口。
    ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效
    ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失
    ADD:将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件
    COPY:将本地文件或目录拷贝到镜像的文件系统中。
    VOLUME:添加数据卷
    USER:指定以哪个用户的名义执行RUN, CMD 和ENTRYPOINT等命令
    WORKDIR:设置工作目录
    ONBUILD:如果制作的镜像被另一个Dockerfile使用,将在那里被执行Docekrfile命令
    STOPSIGNAL:设置容器退出时发出的关闭信号。
    HEALTHCHECK:设置容器状态检查。
    SHELL:更改执行shell命令的程序。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。

    image-20200331011226698

  • 相关阅读:
    noi 2011 noi嘉年华 动态规划
    最小乘积生成树
    noi 2009 二叉查找树 动态规划
    noi 2010 超级钢琴 划分树
    noi 2011 阿狸的打字机 AC自动机
    noi 2009 变换序列 贪心
    poj 3659 Cell Phone Network 动态规划
    noi 2010 航空管制 贪心
    IDEA14下配置SVN
    在SpringMVC框架下建立Web项目时web.xml到底该写些什么呢?
  • 原文地址:https://www.cnblogs.com/bubu99/p/13763356.html
Copyright © 2011-2022 走看看