第 3 章 镜像 - 016 - Dockerfile 常用指令
Dockerfile 常用指令
1、FROM 指定base镜像
2、MAINTAINER 设置镜像的作者,可以为任意字符串
3、COPY 从build context 复制到镜像
COPY 支持两种形式:
- COPY src dest
- COPY ["src", "dest"]
注意:src 只能指定 build context 中的文件或目录。
4、ADD 与COPY类似,如果src是归档文件是会自动解压到dest。
5、ENV 设置环境变量,可被后面使用
6、EXPOSE 指定容器中的进程会监听的某个端口,Docker 可以将该端口暴露出来。
7、VOLUME 将文件或目录声明为volume
8、WORKDIR 为后面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令设置镜像的当前工作目录
9、RUN 在容器中运行指定的命令
10、CMD 容器启动时运行的指定的命令(可以有多个,但是只有最后一个生效,可以被docker run之后的一个参数代替)。
11、ENTRYPOINT 设置容器启动时运行的命令(可以有多个,但是只有最后一个生效,CMD或docker run之后的参数会被当作参数传递给ENTRYPOINT。
示例
较为全面的 Dockerfile(注:Dockerfile 支持以“#”开头的注释):
FROM busybox
MAINTAINER gsophy@example.net
WORKDIR /testdir
RUN touch tmpfile1
COPY ["tmpfile2","."]
ADD ["bunch.tar.gz","."]
ENV WELCOME "You are in my container, welcome!"
构建镜像并运行容器,验证镜像内容:
root@ubuntu:~/# ls
bunch.tar.gz Dockerfile tmpfile2
root@ubuntu:~/#
root@ubuntu:~/# docker build -t my-image .
Sending build context to Docker daemon .096kB
Step / : FROM busybox
---> 3a093384ac30
Step / : MAINTAINER gsophy@example.net
---> Running in 397d7d53c4be
Removing intermediate container 397d7d53c4be
---> f259c0f5e5da
Step / : WORKDIR /testdir
---> Running in f0282c6305d0
Removing intermediate container f0282c6305d0
---> 51e62b757fef
Step / : RUN touch tmpfile1
---> Running in f80fb54dd08b
Removing intermediate container f80fb54dd08b
---> e2590269bb44
Step / : COPY ["tmpfile2","."]
---> f60ad0bd8a9e
Step / : ADD ["bunch.tar.gz","."]
---> 5835dec7e44e
Step / : ENV WELCOME "You are in my container, welcome!"
---> Running in c18629984787
Removing intermediate container c18629984787
---> a5e0bf651f39
Successfully built a5e0bf651f39
Successfully tagged my-image:latest
root@ubuntu:~/#
root@ubuntu:~/#
root@ubuntu:~/# docker run -it my-image
/testdir # ls
bunch tmpfile1 tmpfile2
/testdir #
/testdir # echo $WELCOME
You are in my container, welcome!
/testdir #
1、进入容器,当前目录即为 WORKDIR。如果 WORKDIR 不存在,Docker 会自动为我们创建。
2、WORKDIR 中保存了我们希望的文件和目录:
目录 bunch:由 ADD 指令从 build context 复制的归档文件 bunch.tar.gz,已经自动解压。
文件 tmpfile1:由 RUN 指令创建。
文件 tmpfile2:由 COPY 指令从 build context 复制。
3、ENV 指令定义的环境变量已经生效。
---------------------引用来自--------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587610&idx=1&sn=fc2c45c4eb11ecc20d6bba50cc7b8cad&chksm=8d308083ba470995f3e784386f4d09859fa7bdf93b0772d1b03669dd7612c818c6280f7f6b00&scene=21#wechat_redirect
第 3 章 镜像 - 016 - Dockerfile 常用指令的更多相关文章
- Dockerfile常用指令及使用
Dockerfile常用指令及使用 1. dockerfile介绍 2. Dockerfile常用指令 指令 描述 FROM 构建新镜像是基于哪个镜像 MAINTAINER 进行维护者姓名或邮箱地址 ...
- Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
是时候系统学习 Dockerfile 了.下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任 ...
- Dockerfile 常用指令
下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...
- 转 Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
是时候系统学习 Dockerfile 了. 下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是 ...
- 第18章-x86指令集之常用指令
x86的指令集可分为以下4种: 通用指令 x87 FPU指令,浮点数运算的指令 SIMD指令,就是SSE指令 系统指令,写OS内核时使用的特殊指令 下面介绍一些通用的指令.指令由标识命令种类的助记符( ...
- 第 3 章 镜像 - 013 - Dockerfile 构建镜像
第一个 Dockerfile FROM ubuntu RUN apt-get update && apt-get install -y vim 运行 docker build 命令构建 ...
- Dockerfile常用指令说明
具体解释:https://blog.csdn.net/achenyuan/article/details/80231922 将dockerfile文件和生成好的jar 使用ftp工具上传到linux服 ...
- Dockerfile常用指令
FROM 构建的新镜像基于那个镜像 , FROM ubuntu:14 MAINTAINER 镜像维护者姓名或邮箱地址 RUN CMD EXPOSE 声明容器运行服务的端口 ENV ADD 拷贝文件 ...
- Docker学习笔记_Dockerfile常用指令
Dockerfile常用指令
随机推荐
- windows 7/10 安装u盘制作
今天,在拷贝数据时,发现那台丢在那两三年的pc密码忘了,故计划重装,因为从来都是公司信息中心管这事,至少都七八年没有自己装机了,故整理过程如下: 1.从itellyou.cn下载原版镜像: 2.准备一 ...
- 【ASP.Net MVC3 】使用Unity 实现依赖注入
转载于:http://www.cnblogs.com/techborther/archive/2012/01/06/2313498.html 家人身体不太好,好几天没在园子里发帖了. 新项目还是要用M ...
- JavaBean的getters和setters方法自动生成
xgClass.java文件: public class XgClass { private String ccCityDerate1000Num; } 添加getter/setter方法: 在代码区 ...
- 20145208 蔡野 《网络对抗》Exp6 信息搜集与漏洞扫描
20145208 蔡野 <网络对抗>Exp6 信息搜集与漏洞扫描 本实践的目标是掌握信息搜集的最基础技能.具体有(1)各种搜索技巧的应用(2)DNS IP注册信息的查询 (3)基本的扫描技 ...
- 王之泰201771010131《面向对象程序设计(java)》第一周学习总结
王之泰201771010131<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.co ...
- FireMonkey 源码学习(3)
五.TTextLayoutNG 在FMX.TextLayout.GPU.pas文件中,实现了几个基础功能,其中: (1)渲染单元 在TextLayout中,每一批同字体和颜色的1~n个字符,组成一个最 ...
- CSS的再深入3(更新中···)
在前面,我们学习了标准文档流,但在实际制作的过程中,用标准文档流书写显然是不现实的,因此,我们来了解几种脱离标准文档流的方法: 1.float 浮动 float:left/right:(左浮/右浮) ...
- android linux 休眠 深度睡眠 查看 方法 调试【转】
本文转载自:https://blog.csdn.net/u011006622/article/details/72900552 在Android移动设备中,有时按下Power键(未接电源,USB)时, ...
- linux内核中的最简单的输入输出调度算法noop
1. noop是什么? noop是一种输入输出调度算法 2. noop的别称 又称为电梯调度算法 3. noop原理是怎样的? 将输入输出请求放到一个FIFO队列中,然后按次序执行队列中的输入输出请求 ...
- 奇怪的比赛|2012年蓝桥杯B组题解析第四题-fishers
(8')奇怪的比赛 某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍:答错了则扣掉与题号相同的分数(选手必须 ...