docker--制作自己的镜像(一)

来源:互联网 发布:外星人源码论坛 编辑:程序博客网 时间:2024/06/08 01:55

这篇文章我们来学习一下如何制作自己的镜像文件的一些理论知识,为后面制作自己的镜像做一些准备工作。

通过之前的文章我们已经了解了镜像文件与容器的关系,容器是由镜像运行产生的。镜像一旦制作完毕,里面的已有的内容将无法修改,因为镜像是只读的,但是我们可以创建新的层用来向镜像中增加内容,即镜像可以增加应用与软件,却无法修改已有的应用与软件。

制作镜像有两种方式,一种是使用dockerfile来制作镜像,一种方式是编辑运行的容器保存为新的镜像。

  • Dockerfile
Dockerfile是一个文本格式的配置文件,可以被docker服务所编译(可以这么理解)产生镜像文件。

Dockerfile是由命令行组成,#开头表示为注释。

一般情况下Dockerfile分为4部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行命令。

简单介绍一些常用的指令信息:

FROM : 指定所创建镜像的基础镜像

MAINTAINER : 指定维护者信息

RUN : 运行指令

ENV : 指定环境变量

ADD : 复制指定路径下的内容到容器中的路径下,可以是URL,如果是tar文件,将自动解压。

COPY : 复制指定路径下的内容到容器中的路径下,不可以是url,如果是tat也不会自动解压,建议使用COPY而不是ADD.

ENTRYPOINT : 指定镜像的默认入口,如果有多条将只执行最后一条。类似于开机启动项,在运行镜像是无法被覆盖。

CMD : 用来指定启动容器时默认执行的命令,在运行镜像时可以进行覆盖。

编辑完成Dockerfile文件后,可以执行 docker build -t imagename .生成指定镜像。注意:最后的点必不可少,这个点指定了Dockerfile的路径为当前目录,也可以使用dockerfile的path代替。

  • 编辑运行的docker容器生成新的镜像
由于镜像是只读的,只有在运行时会产生一个新的可编辑的层,所以我们可以通过向容器中增加新的应用程序来编辑新的镜像。

编辑完成后我们可以通过命令 docker commit CONTAINERID IMAGE 指定容器称为新的镜像。


本文就为大家介绍这两种方式的理论知识,后续为大家用这两种方式实际制作镜像,镜像的地址我们可以使用网易蜂巢。

原创粉丝点击