【云原生 · Docker】轻松学会dockerfile构建镜像

Dockerfile用于自动化构建Docker镜像,它包含了一系列指令如FROM,RUN,CMD等。Docker利用缓存机制加速构建过程,若某层已存在则直接使用缓存,无需重复执行。构建时可通过--no-cache禁用缓存。文章还列举了Dockerfile常用命令的使用方法和示例。

目录

🍉dockerfile是什么

🍉镜像的缓存特性

🍉dockerfile命令

🍒FROM

🍒RUN

🍒CMD

🍒LABEL

🍒EXPOSE

🍒ENV

🍒ADD

🍒COPY

🍒ENTRYPOINT

🍒VOLUME

🍒USER

🍒WORKDIR

🍒ARG

🍒ONBUILD

🍒STOPSIGNAL


    🦐博客主页:大虾好吃吗的博客

    🦐专栏地址:云原生专栏

dockerfile是什么

docker中并不建议用户通过commit方式来构建镜像,主要原因如下:

  1. 这是一种手工创建镜像的方式,容易出错,效率低且可重复性弱。比如要在 debian base 镜像中也加入vi,还得重复前面的所有步骤。

  2. 更重要的:使用者并不知道镜像是如何创建出来的,里面是否有恶意程序。也就是说无法对镜像进行审计,存在安全隐患。

        用 Dockerfile(推荐方法)构建镜像,底层也 docker commit 一层一层构建新镜像的。docker commit 能够帮助我们更加深入地理解构建过程和镜像的分层结构。

强烈推荐看官方文档:MySQL官方dockerfile文档

        用 Dockerfile(推荐方法)构建镜像,底层也 docker commit 一层一层构建新镜像的。docker commit 能够帮助我们更加深入地理解构建过程和镜像的分层结构。

        下面来个小案例,使用centos:7来构建系统镜像,里面安装vim(默认里面仅支持vi)。下面使用buid构建镜像,os1镜像名,“ . ”是dockerfile的路径

[root@localhost ~]# mkdir doc_file
[root@localhost ~]# cd doc_file/
[root@localhost doc_file]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   16 months ago   141MB
httpd        latest    dabbfbe0c57b   16 months ago   144MB
centos       7         eeb6ee3f44bd   19 months ago   204MB
[root@localhost doc_file]# vim dockerfile
FROM centos:7
RUN yum -y install vim
[root@localhost doc_file]# docker build -t os1 .
[+] Building 110.7s (6/6) FINISHED                                
 => [internal] load build definition from dockerfile         0.0s
 => => transferring dockerfile: 74B                          0.0s
 => [internal] load .dockerignore                            0.0s
 => => transferring context: 2B                              0.0s
 => [internal] load metadata for docker.io/library/centos:7  0.0s
 => CACHED [1/2] FROM docker.io/library/centos:7             0.0s
 => [2/2] RUN yum -y install vim                           108.6s
 => exporting to image                                       2.0s
 => => exporting layers                                      2.0s
 => => writing image sha256:8326a9eb4706b6687c5b1329426b81e  0.0s 
 =>
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大虾好吃吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值