「云原生 | Docker」构建第一个 SpringBoot 工程镜像
一、准备工作
1. 安装 Docker , 未安装的请先
2. 准备一个可正常运行的 SpringBoot 工程 jar 包
二、构建镜像
1. 操作目录说明
-
DockerImage Dockerfile target (文件夹) DockerImage-0.0.1-SNAPSHOT.jar
后续命令均在 DockerImage 目录内执行
2. 编写 Dockerfile 文件
# 拉取基础 jdk 镜像 FROM openjdk:8 # 将 jar 包添加到镜像中的 home 目录,并重命名为 springboot.jar ADD ./target/DockerImage-0.0.1-SNAPSHOT.jar ~/springboot.jar # Docker服务端端口,在容器启动时需要通过 -p 进行端口映射 EXPOSE 8080 # 容器启动后执行的命令 ENTRYPOINT ["java","-jar","~/springboot.jar"]
3. 构建镜像
dockerimage 为镜像名称,1.0 为镜像 TAG
# 通过 dockerfile 构建镜像 docker build -t springbootimage:1.0 .
docker build 默认使用当前目录下名称为 Dockerfile 的文件构建,如使用其他名称,可使用 -f 命令指定 Dockerfile 文件
4. 查看镜像
通过 docker images 命令查看镜像,已经有刚构建的 dockerimage 镜像
# 查看镜像命令 docker images # 镜像信息 REPOSITORY TAG MAGE ID CREATED SIZE springbootimage 1.0 708697c5291c 13 seconds ago 538MB
三、部署镜像
1. 保存镜像
使用 docker save 命令将我们构建好的镜像保存到本地,然后复制到需要部署的服务器
docker save springbootimage > springbootimage.tar
2. 导入镜像
在需要部署的服务器导入镜像:docker load < 镜像
[root@shangliang dockerimages]# docker load < springbootimage.tar 11936051f93b: Loading layer [==================================================>] 129.1MB/129.1MB 31892cc314cb: Loading layer [==================================================>] 11.3MB/11.3MB 8bf42db0de72: Loading layer [==================================================>] 19.31MB/19.31MB 26a504e63be4: Loading layer [==================================================>] 156.5MB/156.5MB f9e18e59a565: Loading layer [==================================================>] 11.74MB/11.74MB 7c245b2fe4f1: Loading layer [==================================================>] 3.584kB/3.584kB bff9fe6e429c: Loading layer [==================================================>] 209.8MB/209.8MB b4600ba8905e: Loading layer [==================================================>] 17.61MB/17.61MB Loaded image: springbootimage:1.0 [root@shangliang dockerimages]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE springbootimage 1.0 708697c5291c 2 hours ago 538MB
3. 启动容器
docker run -p 8080:8080 --name springboot -d springbootimage:1.0
根据自己 springboot 工程内接口情况,访问任意接口即可测试是否启动成功
[root@shangliang dockerimages]# curl http://127.0.0.1:8080 hello world !
四、完结
本文主要介绍如何将一个 SpringBoot 构建成 docker 镜像并通过拷贝镜像的方式进行远程部署。