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

结果如图:

image4927d329dd684d39.png

说明:

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

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

imagea4cef4a7ca153ce7.png

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

imaged671960cb4f8eb45.png

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

image7d0805903f8a82d4.png

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

猜你喜欢

转载自www.cnblogs.com/chen88/p/11538346.html