zoukankan      html  css  js  c++  java
  • Docker(二) Dockerfile 使用介绍

    前言

    图解Docker 镜像、容器和 Dockerfile 的关系:

    一、Dockerfile的概念

    Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

    镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

    Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可,省去了敲命令的麻烦。

    二、Dockerfile的文件格式

    ##  Dockerfile文件格式
    
    # This dockerfile uses the ubuntu image
    # VERSION 2 - EDITION 1
    # Author: docker_user
    # Command format: Instruction [arguments / command] ..
     
    # 1、第一行必须指定 基础镜像信息
    FROM ubuntu
     
    # 2、维护者信息
    MAINTAINER docker_user docker_user@email.com
     
    # 3、镜像操作指令
    RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
    RUN apt-get update && apt-get install -y nginx
    RUN echo "
    daemon off;" >> /etc/nginx/nginx.conf
     
    # 4、容器启动执行指令
    CMD /usr/sbin/nginx
    

    三、构建镜像

  • 相关阅读:
    Nginx Rewrite详解
    linux下面mysql的基本命令
    通过淘宝的rubygems镜像,安装rubygems
    PHP 调用函数时,函数名称前面加@的作用
    mysql5.5中 host的值为::1
    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
    ruby数组方法concat和push的区别
    PHP 的时间格式
    EOF与getchar
    控件台版/MFC版本的简单生日提醒软件及源码
  • 原文地址:https://www.cnblogs.com/colman/p/10282176.html
Copyright © 2011-2022 走看看