Dockerfile构建镜像一个最基础的vim镜像

原创 浪子丶刘少  2019-05-30 12:00  阅读 1,692 次 评论 0 条 百度未收录

笔记内容

用 Dockerfile 创建一个centos镜像,让其安装vim命令

构建Dockerfile文件

1.创建一个新目录,保证里面无其他文件影响

mkdir /mnt/demo
cd /mnt/demo

2.编写Dockerfile文件

vim Dockerfile
写入
FROM centos
RUN yum update && yum install -y vim

运行过程详解

[root@host01 ~]# docker images -t centos-vim-dockerfile .
注:
docker build  #运行构建
-t  #新镜像命名为centos-vim-dockerfile
.   #指明 build context 为当前目录
-f  #可加,指定 Dockerfile 的位置。

运行过程:
Sending build context to Docker daemon 2.048 kB
#Docker 将 build context 中的所有文件发送给 Docker daemon。build context 为镜像构建提供所需要的文件或目录。Dockerfile 中的 ADD、COPY 等命令可以将 build context 中的文件添加到镜像。此例中,build context 为当前目录 /mnt/demo,该目录下的所有文件和子目录都会被发送给 Docker daemon。

Step 1/2 : FROM centos
#执行 FROM,将 centos 作为 base 镜像。镜像 ID 为 7698f282e524

Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
6abc03819f3e: Pull complete
05731e63f211: Pull complete
0bd67c50d6be: Pull complete
Digest: sha256:b36667c98cf8f68d4b7f1fb8e01f742c2ed26b5f0c965a788e98dfe589a4b3e4
Status: Downloaded newer image for docker.io/centos:latest
 ---> 7698f282e524

Step 2/2 : RUN yum update && yum install -y vim
#执行 RUN,安装 vim,保存为镜像,其 ID 为 aedf9837a335
 ---> Running in 76aee70c622b
...
...
Removing intermediate container 76aee70c622b
Successfully built aedf9837a335

步骤总结:
1.执行FROM,生成基础镜像;
2.创建临时容器,安装vim;
3.安装成功使用类似docker commit命令,保存为新镜像;
4.删除临时镜像;
5.镜像构建成功。

课程总结

1.通过 docker images 查看镜像信息

[root@host01 ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
centos-vim-dockerfile       latest              aedf9837a335        24 minutes ago      155 MB
docker.io/centos            latest              7698f282e524        13 days ago         69.9 MB

镜像 ID 为 aedf9837a335,与构建时的输出一致。

2.运行docker history,显示镜像的构建历史,也就是 Dockerfile 的执行过程。

[root@host01 ~]# docker history ubuntu-with-vi-dockerfile
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
aedf9837a335        28 minutes ago      /bin/sh -c yum update && yum insta...   85.1 MB
7698f282e524        13 days ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B
<missing>           13 days ago         /bin/sh -c mkdir -p /run/systemd && echo '...   7 B
<missing>           13 days ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0 B
<missing>           13 days ago         /bin/sh -c set -xe   && echo '#!/bin/sh' >...   745 B
<missing>           13 days ago         /bin/sh -c #(nop) ADD file:1f4fdc61e133d2f...   69.9 MB

docker history 也向我们展示了镜像的分层结构,每一层由上至下排列。

注:表示无法获取 IMAGE ID,通常从 Docker Hub 下载的镜像会有这个问题。

本文地址:https://www.ezliushao.com/194.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情