Dockerfile 就是用来制作 Docker 镜像的。
一、Docker 镜像原理
镜像制作
Docker 镜像的制作有两个方法:
方法一:容器转为镜像
docker commit 容器id 镜像名称:版本号
注意事项: 将容器转为镜像,如果容器里有挂载目录,则不会被转到镜像里面的。
由于镜像是不能直接发送给其他人的,所以我们可以把镜像压缩成文件进行传输:
docker save -o 压缩文件名称 镜像名称:版本号
其他人拿到镜像的压缩文件,需要进行解压缩:
docker load -i 压缩文件名称
演示:
将 tomcat 容器转为镜像,命名为 zzy_tomcat,版本号定义为 1:
将制作的镜像压缩成文件:
对镜像压缩文件进行解压缩:
现在本地是没有zzy_tomcat镜像的:
进行解压缩:
查看镜像:
方法二:dockfile
下面进行介绍 Dockerfile 概念和作用
二、Dockerfile 概念及作用
三、Dockerfile 关键字
四、Dockerfile 案例
案例一:自定义 centos7 镜像
要求:
实现步骤:
对dockerfile进行构建:
参数说明:
-f:指定 dockerfile 的文件路径。-t:设置新镜像的名称和版本。.:dockerfile 里面需要用到的宿主机的文件的路径。
构建完成:
基于此镜像创建并进入容器:
可以看到直接进入容器的 usr 目录了。
案例二:定义dockerfile,发布springboot项目
实现步骤:
- 定义父镜像:
FROM java:8 - 定义作者信息:
MAINTAINER zzy <zzy123@154.com> - 将 jar 包添加到容器:
ADD springboot.jar app.jar - 定义容器启动执行的命令:
CMD java -jar app.jar - 通过 dockerfile 构建镜像:
docker build -f dockerfile文件路径 -t 镜像名称:版本
演示:
写一个简单的springboot项目,可以返回Hello SpringBoot Docker文字给浏览器:
将项目打包为 jar 包,放到 linux 系统上:
编写 springboot 项目的dockerfile:
构建dockerfile 文件:
构建完成,查看镜像:
基于此镜像,创建并启动容器:
打开浏览器验证: