文档章节

Dockerfile基础命令总结

ExtreU
 ExtreU
发布于 06/22 23:59
字数 502
阅读 69
收藏 0
点赞 0
评论 0
  1. FROM
    指定使用的基础base image
FROM scratch # 制作base image ,不使用任何基础image
FROM centos  # 使用base image
FROM ubuntu:14.04

尽量使用官方的base image,为了安全

  1. LABEL
    描述作者、版本等信息
LABEL maintainer="wsczyfch@gmail.com"
LABEL version="1.0"
LABEL description="This is description"
  1. RUN
    用于运行一些命令
RUN yum install && yum install -y vim \
    python-dev #反斜杠换行
RUN apt-get upgrade && apt-get install -y perl \
    pwgen --no-install-recommends && rm -rf \
    /var/lib/apt/lists/* # 注意清理cache
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'

每执行一次 RUN 会生成一个新的一层
为了美观,复杂的 RUN 请使用反斜杠换行!
避免无用分层。合并多条命令成一行
4. WORKDIR
设定当前工作目录,类比Linux系统的cd命令

WORKDIR /root
WORKDIR /test #如果不存在 test 目录会自动创建
WORKDIR demo
RUN pwd #输出的结果应该是 /test/demo

==注意:==
用 WORKDIR ,不要使用 RUN cd
尽量使用绝对目录,相对目录容易出错

  1. ADD and COPY
    两条命令相似,都是将本地文件添加到 image 里面
ADD hello /

两者区别是, ADD 不光可以添加到 image 里面还可以解压缩

ADD test.tar.gz / #添加到根目录并解压
WORKDIR /root
ADD hello test/ # 路径是 /root/test/hello
WORKDIR /root
COPY hello test/

大部分情况下, COPY 优先于 ADD 使用!
ADD 除了添加 COPY 还有额外的解压功能!
添加远程文件/目录,使用 curl 或 wget!
6. ENV
设置使用的常量

ENV MYSQL_VERSION 5.6 #设置常量
RUN apt-get install mysql-server= "${MYSQL_VERSION}" \
    && rm -rf /var/lib/apt/lists/* #引用常量

尽可能的使用 ENV ,增加可维护性!
7. VOLUME and EXPOSE
用于存储和网络,后续文章介绍。
8. CMD and ENTRYPOINT
后续文章介绍
Dockerfile 官方手册
Dockerfile 官方参考示例

© 著作权归作者所有

共有 人打赏支持
ExtreU
粉丝 3
博文 5
码字总数 7325
作品 0
莆田
Dockerfile指令总结

指令的一般格式为,指令包括、、等。 FROM 格式为或。 第一条指令必须为指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个指令(每个镜像一次)。 MAINTAINER 格式为,指定...

Mr_sheng
2017/12/06
0
0
Docker--------Dockerfile实战

1. 背景   Dockerfile是为快速构建docker image[镜像]而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大小写均可)的纯文本文件并执行里面的...

技术小胖子
2017/11/22
0
0
dockerfile介绍与实例演示

1 Dockerfile(总结) 首先来看下什么是dockerfile:Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfil...

我不是瘦子
2017/11/17
0
0
docker入门与实践之【04-使用dockerfile定制镜像】

利用dockerfile定制镜像 Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 以定制nginx 镜像为例,...

Funcy1122
06/08
0
0
九步构建自己的hello world Docker镜像

构建 Docker 镜像 Docker镜像构建是通过 Dockerfile来构建的,里面运行的程序是可以自定的,从编写程序到安装Docker镜像,可以一气呵成。接下来我们就通过九步实现一个自定义的镜像的制作、构...

上官瑾文
04/17
0
0
Dockerfile 简版大全,附赠编写实例

Docker 逗你玩儿 - Git@OSC 联合灵雀云的 Docker 镜像征集活动,更有奖品赠送点击查看详情。 基础镜像可以用于创建Docker容器。镜像可以非常基础,仅仅包含操作系统;也可以非常丰富,包含灵...

oschina
2015/07/20
6.8K
11
Docker学习与和应用(二)_使用Docker

在前一篇文章 Docker学习与和应用(一)_初步认识中,我们初步介绍了Docker解决了什么问题,Docker容器化技术与传统的虚拟化方式的区别,以及简要介绍了Docker的几大核心概念:镜像、容器和仓库...

dhb_oschina
2016/06/19
101
0
Dockerfile格式以及Dockerfile示例

笔记内容:Dockerfile格式以及Dockerfile示例 笔记日期:2018-02-07 25.13/25.14 Dockerfile创建镜像 –Dockerfile语法 25.15/25.16 Dockerfile创建镜像 –Dockerfile示例 Dockerfile创建镜像...

ZeroOne01
02/07
0
0
使用docker容器定制镜像(image)并部署简单 web应用

概念简述 镜像 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。 Docker镜像是一个只读的模板。比如一个镜像可以包含...

zhaokx3
2017/05/25
0
0
7 docker-使用dockerfile创建镜像

在前面的实验中我们多次用到的 Dockerfile,在本实验里我们将通过完成一个实例来学习Dockerfile的编写。 本节中,我们需要依次完成下面几项任务: Dockerfile 基本框架 Dockerfile 编写常用命...

DevOPS666
2017/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
20分钟前
0
0
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
31分钟前
0
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
37分钟前
0
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
52分钟前
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
59分钟前
0
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
今天
0
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
今天
0
0
安装tensorflow-XXX报错

报错: tensorflow-0.5.0-cp27-none-linux_x86_64.whl is not a supported wheel on this platform. 解决: wget https://bootstrap.pypa.io/get-pip.py sudo python2.7 get-pip.py sudo p......

Yao--靠自己
今天
0
0
JVM学习手册(一):JVM模型

一直从事JAVA开发,天天和JVM打交道,仔细想想对JVM还真的不是特别了解,实在是不应该.周六看了许多资料,也算有点心得,记录一下。 JVM内存模型分为5个区域:方法区,堆,虚拟机栈,本地方法栈,程序计...

勤奋的蚂蚁
今天
0
0
转行零基础该如何学Python?这些一定要明白!

转行零基础学Python编程开发难度大吗?从哪学起?近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大?今天,小编就来为大家详细解读一下这个问题。...

猫咪编程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部