Docker(三)Image概述

33 阅读1分钟

什么是Image

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

image

Image的获取

创建一个helloword-Image

先安装编译C语言的相关环境,然后在当前目录下,创建helloWorld文件夹,然后新建hello.c文件

| 1 2 3 4 | ``` sudo yum install -y vim sudo yum install -y gcc sudo yum install glibc-static vim hello.c

| ---------------- | -------------------------------------------------------------------------------------------------- |

然后在hello.c中,编写c语言程序

| ```
1 2 3 4 5 6 7 8 9 10 11 
``` | ```
sudo yum install glib-static #include<stdio.h>  int main() { int i = 0; for(;i< 10; i ++)     {         printf("hello-docker!\n");     } } 
``` |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |

然后编译:`gcc -static hello.c -o hello`,,可以在当前目录下看到多了一个hello的可执行文件

![1](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1af872399df646739891527ff32cfd72~tplv-k3u1fbpfcp-zoom-1.image)

\
之后编辑 `Dockerfile`文件

| ```
1 2 3 
``` | ```
FROM scratch ADD hello / CMD ["/hello"] 
``` |
| -------------- | ------------------------------------------------ |

然后进行build,运行

| ```
1 2 
``` | ```
sudo docker build -t tinner/hello-world . sudo docker run tinner/hello-world 
``` |
| ------------ | ------------------------------------------------------------------------------------- |

即可看到输出:

![2](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/516cee463fef4ad58872fb9753c4e3e9~tplv-k3u1fbpfcp-zoom-1.image)