一、Docker部署jar包
1.maven打包项目生成jar包
(1)通过maven工具clean项目
(2)去除test目录文件压缩包的大小
(3)通过package进行打包
打包出现的问题:首先检查程序能否运行成功,然后确保maven的打包插件是否添加到pom.xml文件中去
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.Docker部署jar包运行
(1)上传 jar到指定的服务器的目录中
(2)在该目录下创建Dockerfile文件
vi Dockerfile
(3)然后将下面的内容复制到Dockerfile文件中
FROM java:8
MAINTAINER Heisenberg
ADD generator-0.0.1-SNAPSHOT.jar myseckill.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","myseckill.jar"]
# from java:8 拉取一个jdk为1.8的docker image也可以是本地的镜像
#maintainer 作者是Heisenberg
#generator-0.0.1-SNAPSHOT.jar就是你上传的jar包,替换为jar包的名称
#myseckill.jar 是你将该jar包重新命名为什么名称,在容器中运行
#expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
#entrypoint 容器启动之后执行的命令,“java”,"-jar","myseckill.jar"即启动jar
(4)创建好Dockerfile文件之后,执行命令 构建镜像
docker build -t my/demo .
2.Docker部署jar包运行
(1)上传 jar到指定的服务器的目录中
(2)在该目录下创建Dockerfile文件
vi Dockerfile
(3)然后将下面的内容复制到Dockerfile文件中
FROM java:8
MAINTAINER Heisenberg
ADD generator-0.0.1-SNAPSHOT.jar myseckill.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","myseckill.jar"]
# from java:8 拉取一个jdk为1.8的docker image也可以是本地的镜像
#maintainer 作者是Heisenberg
#generator-0.0.1-SNAPSHOT.jar就是你上传的jar包,替换为jar包的名称
#myseckill.jar 是你将该jar包重新命名为什么名称,在容器中运行
#expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
#entrypoint 容器启动之后执行的命令,“java”,"-jar","myseckill.jar"即启动jar
(4)创建好Dockerfile文件之后,执行命令 构建镜像
docker build -t myseckill .
注意:. 表示Dockerfile文件在当前目录下
#myseckill 为构建镜像的名称
(5)镜像构建成功之后,就可以运行容器了
docker run -d --restart=always --name myseckill -p 8080:8080 myseckill 这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
(6) 然后docker ps 看看你的容器有没有在运行即可
(7) docker logs --tail 300 -f demo 查看启动日志
注:如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:
docker update –-restart=always demo #其中demo为容器的名称