6、Docker Image

本文详细介绍了Docker镜像的概念,包括其如何由文件和元数据集合构成,以及镜像的分层特性。同时,文章展示了从Dockerfile构建镜像的过程,通过实例演示了如何创建一个基础镜像,编写并编译C文件,最终使用Dockerfile和docker build命令构建出可运行的镜像。

6.1 什么是image

  • 文件和meta data的集合(root filesystem)
  • 分层的,并且每一层都可以添加、改变、删除文件,成为一个新的image
  • 不同的image可以共享相同的layer
  • image本身是read-only的

Docker Images

6.2 image的获取

  1. Build from Dockerfile
  2. Pull from Registry
  3. commit from a container's changes
通过Dockerfile构建一个base image
  1. 编写一个c文件并编译成为可执行文件
#include<stdio.h>

int main()
{
    printf("hello docker\n");
}
gcc -static hello.c -o hello
  1. 编写Dockerfile文件
FROM scratch
ADD hello /
CMD ["/hello"]
  1. 通过docker build构建镜像

  命令:

docker image build <==> docker build
docker build -t staryjie/hello-docker .

Sending build context to Docker daemon  868.9kB
Step 1/3 : FROM scratch
 --->
Step 2/3 : ADD hello /
 ---> d6f5edefd7fa
Step 3/3 : CMD ["/hello"]
 ---> Running in e1db264875b9
Removing intermediate container e1db264875b9
 ---> 09be7d865fab
Successfully built 09be7d865fab
Successfully tagged staryjie/hello-docker:latest
  1. 通过docker history查看镜像的分层

  命令:

docker history
docker history staryjie/hello-docker:latest

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
09be7d865fab        4 minutes ago       /bin/sh -c #(nop)  CMD ["/hello"]               0B
d6f5edefd7fa        4 minutes ago       /bin/sh -c #(nop) ADD file:e98243ff005d26728…   865kB

转载于:https://www.cnblogs.com/jie-fang/p/10279669.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值