使用docker部署springboot项目

一. 在winows安装docker 。

安装exe文件后,可以在命令行中执行docker命令。但pull镜像时会报错。

image.png

这是因为docker需要开始守护进程。手动开启docker服务。开启服务的同时。也要保证docker客户端在运行。

image.png

二. 编写dockerFile文件,构建镜像

这是我写的dockerfile文件。比较简单


FROM java:openjdk-8-jre-alpine
EXPOSE 12315
ENV LANG C.UTF-8
VOLUME /tmp
ADD target/app-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

构建镜像

docker build -t app .

docker build  
-t  :   指定镜像名称
.   :   表示dockerfile所在的目录。 

构建的镜像可以使用命令 docker images 查看

image.png

运行镜像
docker run -d -p 12325:12315 app -e --spring.profiles.active=prod

-d :后台运行
-p :指定端口
12325:12315 :前边表示宿主机的端口。后边表示docker容器的端口。
 app :镜像名称。也可以使用镜像id
-e: 向启动的容器内传入环境变量。在我使用过程中发现好像只有写在结尾处才有用。

docker run -d -p 12315:12315  -e --spring.profiles.active=prod app 这样写的话,环境变量就没有设置成功。

使用docker container ls 查看正在运行的容器

image.png

进入容器内部

可能是我制作的镜像不标准。在使用docker exec -it a8fb5707f30a /bin/bash尝试进入容器时。报错了。
最后通过 docker exec -it a8fb5707f30a sh 进入到容器了

进入容器报错

成功进入容器

镜像正常运行的截图
这里的env是我用来测试设置环境变量的。通过 -e --spring.profiles.active=prod 成功将springboot项目以prod模式启动。说明 -e的命令生效了。 如果需要设置多个变量。使用空格分开即可。
docker run -d -p 12325:12325 app -e --spring.profiles.active=prod --server.port=12325
这样就让容器以端口12325 。prod模式运行。

  • image.png

三. 将镜像上传到远程仓库。

我选择的是阿里云库。需要提前在阿里云开通容器镜像服务,创建命名空间和镜像等操作。
在阿里云创建镜像后,根据阿里文档的指引很容易就可以将镜像上传。

image.png

有点需要注意。就是生成tag的时候选择阿里的公网地址。 如果你是阿里ecs就不用管这些了。

四.镜像的持续更新和维护

正在使用中。。。。

你可能感兴趣的:(使用docker部署springboot项目)