前段日子搭建了一个kubenetes集群,kubenetes是需要载入docker image来运行应用的。
我使用的是Springboot框架,因此向大家分享一下Springboot生成docker image的一个方法。不对的地方请指教~
一、Springboot生成jar包
docker image生成需要用到项目build生成的jar包,因此第一步你需要生成一个jar包。maven项目,命令是:
mvn clean package
二、Dockerfile
1、jar生成完毕后,需要创建一个Dockerfile文件(文本类型的)来生成docker image。我的Dockerfile如下:
FROM openjdk:8
LABEL app="blogtest" version="0.0.1"
ADD Blog-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar
FROM : 制定基础镜像;
VOLUME :挂载一个目录到主机目录
LABLE : 用于为镜像添加元数据,元数以键值对的形式指定
ADD : 用于复制构建环境中的文件或目录到镜像中, 如果使用的是本地归档文件(gzip
、bzip2
、xz
)时,Docker会自动进行解包操作,类似使用tar -x.
CMD : 用于指定在容器启动时所要执行的命令
再具体的各种Dockerfile相关命令,可以查看 https://itbilu.com/linux/docker/VyhM5wPuz.html#cmd-cmd
2、Dockerfile写完了,接下来就是命令运行Dockerfile来build docker image,命令如下:
docker build -t test --force-rm .
--force-rm : 始终移除中间容器
可以使用下面的命令查看docker image是都创建成功:
docker images
3、最后,在本地试试docker build出来的image 是否可以跑起来,下面的run命令:
docker run --name ContainerName -p 8888:8888 -d test
--name :为容器指定一个名称
-p : 端口映射,格式为:主机(宿主)端口:容器端口
-d : 后台运行容器,并返回容器ID
还有其他docker run的命令:可以查看 http://www.runoob.com/docker/docker-run-command.html