docke运行jar的几种方式

一.Docker部署jar共有3种方式
1.本机或服务器制作一个docker镜像
1.1需要一个已经生成的jar包,目录如下
docke运行jar的几种方式
1.2制作一个名字叫Dockerfile的文件内容如下
#指定镜像基础,此处用的jdk8是docker比较常用的jak
FROM openjdk:8-jdk-alpine
#镜像维护者及联系方式
MAINTAINER *** “***”

#添加jar包名,第一个jar包是打包的jar包名字,第二个是我们将jar包放进docker里面的名字
ADD test-0.0.1-SNAPSHOT.jar app.jar
#docker暴露端口号
EXPOSE 8080
#挂载目录
VOLUME /tmp

#可解决tomcat可能启动慢的问题
-Djava.security.egd=file:/dev/./urandom
#容器开启运行命令,,号代表空格
ENTRYPOINT [“java”,"-jar","/app.jar"]
1.3.生成镜像
输入命令 (-t后面家名字:后面加版本号,最后有个.表示路径)
docker build -t test:1.0.0 .

2.Maven推送方式制作镜像(服务器需要可以连通)
2.1修改docker远程访问权限 (2种方法)
方法1(注方法1和方法2只能使用一个如果修改后报错则说明配置冲突,及配置了2个)
vim /etc/docker/daemon.json
{
“hosts”:[“tcp://0.0.0.0:2375”,“unix:///var/run/docker.sock”]
}
方法2
vim /lib/systemd/system/docker.service(加入或者修改下面的话)
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
如果配置成功则可以访问 ip:2375/info

2.2 maven加入的docker打包插件

com.spotify
docker-maven-plugin
0.4.9


test:1.0.1

http://49.232..*:2375

src/main/docker


project.build.directory</directory><include>{project.build.directory}</directory> <include>{project.build.finalName}.jar




2.3建立Dockerfile文件,内容和1.2相同
2.4打包
mvn clean package docker:build -Dmaven.test.skip=true
3.利用一个具有jdk环境的docker镜像去运行一个jar包
3.1将jar包上传服务器
3.2 docker下载一个具有jdk环境的镜像
docker pull openjdk:8-jdk-alpine
3.3运行
docker run -d -p 9090:9090 -v /usr/springboot-1.jar:/usr/springboot-1.jar --name springboot openjdk:8-jdk-alpine java -jar /usr/springboot-1.jar
-d 表示在后台启动
-p 9090:9090 表示将容器的端口 映射成宿主主机的端口,否则9090端口访问不到 -v /usr/springboot-1.jar:/usr/springboot-1.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
–name springboot 表示为该容器取一个全局唯一的名称,这里我取的名称为springboot
java:8u111 表示镜像文件的名称和tag
java -jar /usr/springboot-1.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的

二.docker运行镜像
第一次运行
docker run -d -p 8081:8080 -v /var/log:/var/log --name test test:1.0.0
运行之后启动
docker start 镜像id
进入镜像终端
docker exec -it 镜像id sh

三.Docker常用命令
将id为a404c6c174a2的容器按日期保存为tar文件
docker export -o mysql-date +%Y%m%d.tar a404c6c174a2

导入docker镜像
docker load --input fedora.tar

查看当前docker镜像
docker images

查看当前运行的docker惊喜
docker ps

查看所有运行过的docker惊喜
docker ps -a

下载镜像
docker pull 镜像名:版本

查找惊喜
docker search 镜像名

注:IDEA也有docker插件,可以实现对能够联通的服务器一键部署
各大数据库都有自己的官方docker,会对docker进行优化操作