使用 Dockerfile 定制镜像
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
此处以定制 tomcat镜像为例,使用 Dockerfile 来定制。
首先拉取tomcat镜像
$ docker pull tomcat
查看镜像
$ docker images
进入镜像 (-it:指的是交互式终端进入到bash中),在这里可以看到已经进入到tomcat中
$ docker run -it tomcat bash
进入到webapps/Root
目录下面 使用命令 $ pwd
获取路径(这个路径需要保存起来,或者开两个窗口,方便复制)
一般自己创建下载的文件都放在 /use/local
目录底下
把Dockerfile放在docker/tomcat
目录下(在没有Dockerfile文件的情况下,可以直接使用命令 $ vi Dockerfile
创建并编辑文件内容)
Dockerfile文件写入(i:写入文件内容 esc:退出写入模式)
FROM :指定某个镜像
WORKDIR :相当于切换到某个目录下面(后面的路径就是刚刚保存的路径)
RUN :执行某个方法
之后保存并退出(esc ---》 :wq!
)
基于tomcat镜像,切换到tomcat目录下的ROOT中,删除里面所有的文件,并且写入“hello tomcat”到index.html文件中
退出后需要自己构建一个镜像
- hello:镜像的名字
- . :代表上下文(执行build命令是把tomcat文件夹下所有的文件打包放在Docker
server中,在Docker server中解包后的所在的层级就为当前路径)
$ docker build -t hello .
构建完成后查看镜像
由于hello这个镜像是基于tomcat镜像,所以启动的时候需要指定ip
启动成功后可在浏览器访问