文档章节

Dockerfile基础命令总结

ExtreU
 ExtreU
发布于 06/22 23:59
字数 502
阅读 82
收藏 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
博文 6
码字总数 8373
作品 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实践:python应用容器化

一、前言   容器使用沙箱机制,互相隔离,优势在于让各个部署在容器的里的应用互不影响,独立运行,提供更高的安全性。本文主要介绍python应用(django)跑在docker容器里,编写dockerfil...

三只松鼠
08/22
0
0
docker入门与实践之【04-使用dockerfile定制镜像】

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

Funcy1122
06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql load data 批量导入使用

最近在研究使用mycat,其中有使用批量数据导入,简单记录一下使用方式。 查看系统属性 mysql>show variables like '%secure%'+--------------------------+-----------------------+| Vari...

FansinZhao
10分钟前
0
0
浅谈React的最大亮点——虚拟DOM

在Web开发中,需要将数据的变化实时反映到UI上,这时就需要对DOM进行操作,但是复杂或频繁的DOM操作通常是性能瓶颈产生的原因,为此,React引入了虚拟DOM(Virtual DOM)的机制。 一、什么是...

peakedness丶
13分钟前
0
0
下一代大数据处理引擎,阿里云实时计算独享模式重磅发布

摘要: 11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/CPU/内存等资源上跟其他用户完全独立,是实时计算在原有共享模式基础上的重大升级。...

阿里云官方博客
18分钟前
0
0
Spring MVC 测试样例

1、需要javax.servlet-api V3.0以上支持 <!--3.0以上版本--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-......

jcc_codingBoy
20分钟前
2
0
kettle增量同步oracle数据到mysql

kettle增量同步oracle数据到mysql 适合表中有更新时间的字段 kettle安装 绿色,下载后解压即可(略), -> Download 连接数据库 需要导入jdbc相关驱动jar包到lib目录(oracle、mysql对应jar...

o00o
24分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部