docker 打包部署jar包总结

倖福魔咒の 提交于 2021-01-05 15:34:19

1.vim 新建Dockerfile文件

FROM java:8
MAINTAINER lyj
ADD thedatamanager-authserver-0.0.1-SNAPSHOT.jar /authserver.jar
ENTRYPOINT ["sh","-c","java -jar  /authserver.jar"]

2.上传jar包 

3.打包命令 docker build -t authlyj .

4.查看打包是否成功

[root@ambari-01 lyjJars]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
authserver-lyj2   latest    4f5c9cf1c6fb   4 hours ago   683MB

5.启动

 docker run -d -p 8889:7104 --name  lyjtest authlyj

docker run 命令包含docker create 和 docker start两个命令,后续对容器的启动和停止使用

docker start lyjtest 和 docker stop lyjtest

start不能够再指定容器启动时运行的指令,因为docker只能有一个前台进程。

6.查看日志以及启动情况

    docker ps -a  //查看启动的容器

    docker logs -f -t --tail 10 lyjtest // 查看启动日志

    docker stop lyjtest  //停止docker 容器

    docker rm id/name  //删除容器

    docker rmi imageID //删除镜像

这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always

7.关于docker  attach命令 可以查看实时输出的信息

官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器

[root@ambari-01 docker]# docker attach --sig-proxy=false lyjtest
2021-01-05 15:07:19.007  INFO 7 --- [nio-7104-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-01-05 15:07:19.008  INFO 7 --- [nio-7104-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-01-05 15:07:19.026  INFO 7 --- [nio-7104-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 18 ms

8.docker 打包导入到另一台服务器  参考连接 https://www.cnblogs.com/lfl17718347843/p/13703991.html

docker save -o lyjtest.tar REPOSITORY  //打包

docker load  < lyjtest.tar  //解包 

docker images //查看是否导入成功

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!