「云原生 | Docker」构建第一个 SpringBoot 工程镜像

目录

一、准备工作

二、构建镜像

1. 操作目录说明

2. 编写 Dockerfile 文件

 3. 构建镜像

4. 查看镜像

三、部署镜像

1. 保存镜像

2. 导入镜像

3. 启动容器

四、完结


一、准备工作

1. 安装 Docker , 未安装的请先「安装 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 镜像并通过拷贝镜像的方式进行远程部署。

你可能感兴趣的:(云原生,Docker,docker,容器,运维,微服务,云原生)