Docker部署jar包运行
方式一:
1-上传jar到服务器的指定目录
2-在该目录下创建Dockerfile 文件
1 | FROM java:8 |
from java:8
拉取一个jdk为1.8的docker imagemaintainer
作者是laiqiaobodemo-0.0.1-SNAPSHOT.jar
就是你上传的jar包,替换为jar包的名称demo.jar
是你将该jar包重新命名为什么名称,在容器中运行expose
该容器暴露的端口是多少,就是jar在容器中以多少端口运行entrypoint
容器启动之后执行的命令,java -jar demo.jar 即启动jar
3-创建好Dockerfile文件之后,执行命令 构建镜像:
1 | // 注意最后的 `.` 表示 Dockerfile 文件在当前目录下 abc是构建之后镜像名称 |
4-镜像构建成功之后,就可以运行容器了
1 | docker run -d --restart=always --name demo -p 8080:8080 abc |
方式二
运行一个jdk的容器,然后挂载其中的目录到宿主机,然后运行之后,就可以将需要运行的jar放在宿主机的挂载目录下,然后每次重新运行docker容器即可。每次发布只需要替换宿主机中的jar包即可。
1-准备 jdk1.8的镜像
2-构建容器, 并映射本地目录
1 | docker run -d --restart=always -v /C/develop/server:/jar -p 8000:8001 --name=cdemo primetoninc/jdk:1.8 java -jar -Duser.timezone=GMT+08 /jar/mybatis.jar |
常用命令
1 | docker ps // 查看运行中的容器 |
参数解释
1 | -d: 后台运行容器,并返回容器ID; |
docker run 和 docker start 区别
docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。 相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
docker start的作用是,重新启动已存在的镜像,可以使用docker ps找到容器的信息。
开启阿里云加速
docker的镜像仓库在国外,下载会很慢,启用阿里云加速。
在/etc/docker
目录下创建daemon.json
文件,添加如下内容
1 | { |
https://almtd3fa.mirror.aliyuncs.com 为阿里云的加速地址。修改后,重启docker:
1 | systemctl daemon-reload |