Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

编写Dockerfiles最佳实践 PDF 下载


分享到:
时间:2020-12-05 13:32来源:http://www.java1234.com 作者:转载  侵权举报
编写Dockerfiles最佳实践 PDF 下载
失效链接处理
编写Dockerfiles最佳实践 PDF 下载


本站整理下载:
提取码:rpj5 
 
 
相关截图:
 
主要内容:


Docker 通过读取 Dockerfile 中的指令自动构建镜像,一个文本文件包含构建镜像的所有指
令。Dockerfile 遵循特定的格式和指令集,您可以在 Dockerfile 中引用它们。
Docker 镜像由只读层组成,每一层代表一个 Dockerfile 指令集。每一层都是前一层变化的
增量。考虑这个 Dockerfile:
FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py
每条指令创建一个层:
⚫ FROM 从 ubuntu:18.04 基础镜像创建一个层。
⚫ COPY 从 Docker 客户端当前目录中添加文件。
⚫ RUN 使用 make 构建你的应用。
⚫ CMD 指定容器运行时执行的命令。
当你运行一个镜像生成一个容器,在底层的顶部添加一个可写层(容器层)。对正在运行容
器所做的所有更改,比如写文件,修改已存在的文件,和删除文件,都被写入这个可写空口
层。
Dockerfile 定义的容器应该生成尽可能短暂的容器,通过“短暂”,我们的意思是容器可以
被停止或销毁,然后重建并用最小的设置和配置。从而充分利用容器的分层存储。
3
云管理服务专家新钛云服(www.tyun.cn)翻译整理
编写 Dockerfiles 最佳实践(Docker 18.09) 4
云管理服务专家新钛云服(www.tyun.cn)翻译整理
1.理解构建上下文
执行 docker build 命令时,当前工作目录称为构建上下文。 默认情况下,假定 Dockerfile
位于此处,但您可以使用文件标志(-f)指定其他位置。 无论 Dockerfile 实际存在于何处,
当前目录中的所有文件和目录的递归内容都将作为构建上下文发送到 Docker 守护程序。
构建上下文件示例:
创建并 CD 进入构建上下文目录,将“hello”写入名为 hello 的文本文件中,并创建一个
在其上运行 cat 的 Dockerfile。从构建上下文(.)中构建镜像。
mkdir myproject && cd myproject
echo "hello" > hello
echo -e "FROM busybox\nCOPY /hello /\nRUN cat /hello" > 
Dockerfile
docker build -t helloapp:v1 . 将 Dockerfile 和 hello 移动到单独的目录中并构建映像的第二个版本(不依赖于上一次构
建的缓存)。使用-f 指向 Dockerfile 并指定构建上下文的目录:
mkdir -p dockerfiles context
mv Dockerfile dockerfiles && mv hello context
docker build --no-cache -t helloapp:v2 -f
dockerfiles/Dockerfile context
无意中包含构建不必要的文件会导致更大的构建上下文和更大的镜像,这将增加构建时间,
拉取和推送镜像的时间以及容器运行时占用更多的存储空间。查看构建上下文大小,在构建
Dockerfile 时查找类似信息。
Sending build context to Docker daemon 187.8MB
编写 Dockerfiles 最佳实践(Docker 18.09)
2.基于 stdin 的构建上下文
Docker 能通过 stdin 与本址或远程构建上下文管道 Dockerfile 来构建镜像。通过 stdin 管 道 Dockerfile 对于执行一次性构建非常有用,无需将 Dockerfile 写入磁盘,或者在生成
Dockerfile 的情况下,并且之后不应该持久化。
例如,以下命令是等效的:

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐