以前我们部署项目

打包->传到服务器->java -jar运行

而且服务器还得先配置好java运行环境

现在,使用docker部署项目,只需要在项目中编写一个Dockerfile文件

在项目中创建一个Dockerfile文件,我这里就放到项目根路径下

那么Dockerfile改如何编写呢?下方命令中黑体部分是固定写法

首先第一步jar包运行肯定需要一个运行环境

FROM openjdk:8-jdk-slim

这个from后面怎么写,比如我现在用的java8,到docker hub网站中搜索jdk,点击第一个java进去,在tags标签页下面搜索8-jdk,找到一个linux的jdk,复制下面选中的这一块就可以

第二步写上作者

LABEL maintainer=vhukze

第三步复制jar包

大家都知道在docker中运行容器,本身是运行了小的linux系统。要运行这个jar包,linux中就得有这个jar包,使用copy命令把jar包复制到一个自定义路径下

我的Dockerfile文件放到了项目根路径下,跟target目录平级

COPY target/*.jar /main.jar

target目录下也就一个jar包,直接写*.jar,把jar包复制到了小linux中根路径下,名称为main.jar

第四步启动命令

上面复制完之后名称为main.jar,所以这里启动命令也是启动mian.jar

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

构建镜像并启动

至此一个最简单的Dockerfile文件就编写完成了

全部内容如下

FROM openjdk:8-jdk-slim
LABEL maintainer=vhukze

COPY target/*.jar /main.jar

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

接下来需要根据这个Dockerfile打包镜像

一般我们自己开发用的Windows电脑都没有安装docker,就需要把target文件夹和Dockerfile文件上传到安装好docker的服务器,在服务器上使用docker构建镜像

我这里在/usr/local下面创建了一个app文件夹

把target文件夹和Dockerfile文件上传到这里,target文件夹中只需要有一个jar包就行,其他文件都可以删掉

在这个目录执行下面命令

docker build -t java-test:v1.0 -f Dockerfile .

-t 后面是镜像名称和版本号

-f 是使用哪个Dockerfile文件,当前目录就有Dockerfile文件,所以这个参数也可以省略不写

命令最后有一个点(.),这个点表示在当前目录下工作(就是COPY命令在复制的时候以当前目录为基准,把当前目录下target文件夹中的所有jar包复制到容器的小Linux下)

执行命令后,等待构建完成

 docker images查看镜像是否存在

 启动容器 -d后台启动 -p使用8888端口并映射到主机8888端口

docker run -d -p 8888:8888 java-test:v1.0

 

 等他启动完成,就可以访问了

 启动好之后如果想查看运行日志

docker logs 容器ID

 

如果想在另一个服务器也部署一遍这个项目,应该怎么操作,当然不用再重复上面的操作,请移步下篇博文:docker<应用分享>--本地镜像上传dockerhub、从dockerhub拉取镜像

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐