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

    一 Dockerfile 简介

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

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

    二 Dockerfile 示例与使用

    2.1 Dockerfile参考示例

    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

    # 作用:
    	根据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 命令概述(一)

    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

  • 相关阅读:
    计算机图形学的学习资源
    Matlab绘图基础
    Matlab绘图函数一览
    Matlab编程基础
    Python实现对文件夹内文本文件递归查找
    C++预处理详解
    C++的学习资源
    OGRE启动过程详解(OGRE HelloWorld程序原理解析)
    Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)
    windows下Bullet 2.82编译安装(Bullet Physics开发环境配置)
  • 原文地址:https://www.cnblogs.com/heirenxilou/p/13566118.html
Copyright © 2011-2022 走看看