Docker File入门(一)

需求

入门使用docker file构建镜像,先来一个简单的需求:

使用docker file制作简单的tomcat的镜像,使运行镜像显示自定义的首页。

过程

1.了解tomcat镜像

想要构建这样一个镜像,我们必须先连接tomcat原始镜像的目录结构:

使用命令docker run -it tomcat bash以交互的终端打开一个shell

image26488c4b9a4ee7ea.png

最终我们就是想要往/usr/local/tomcat/webapps/ROOT这个目录里追加一段HTML。

2.构建镜像

切换到/usr/local目录下,在目录下创建一个docker/tomcat文件夹。

1)建立一个文本文件,并命名为 Dockerfile:

FROM tomcat
WORKDIR /usr/local/tomcat/webapps/ROOT/
RUN rm -rf *
RUN echo "Hello Docker" > /usr/local/tomcat/webapps/ROOT/index.html

FROM表示基于tomcat构建,类似于JAVA中的继承,然后切换工作目录为Root这个目录,删除此目录的所有文件,把Hello Docker 加到index.html中。

2)构建镜像

运行命令docker build -t mytomcat .

这时候一个自己的镜像就构建好了,查看镜像:

imagece8613a4b6fc65fa.png

运行一下自己构建tomcat镜像:docker run -p --rm 8080:8080 mytomcat

结果如图:

Docker File入门(一)_第1张图片

说明:

关于docker build -t mytomcat .命令中的这个.,很多人会认为是指定docker file的文件位置,这种看法并不准确,其实这个.是指的上下文路径

我们都知道,docker 是一个CS架构的软件,通过docker version也可以看到:

Docker File入门(一)_第2张图片

Docker 的引擎提供了一组 REST API,而我们输入的这些命令,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 docker 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。

Docker File入门(一)_第3张图片

当构建的时候,用户会指定构建镜像上下文的路径,docker build 命令得知这个路径后,会将路径下的所有内容打包,然后上传给 Docker 引擎。这样 Docker 引擎收到这个上下文包后,展开就会获得构建镜像所需的一切文件。

Docker File入门(一)_第4张图片

这就是所谓的上下文路径,比如在客户端就是客户端的当前目录,在docker server就表示的是在docker server解压后的文件路径。

你可能感兴趣的:(Docker File入门(一))