吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1406|回复: 1
收起左侧

[会员申请] 申请会员ID:4C6565

[复制链接]
吾爱游客  发表于 2024-4-29 10:53
1、申 请 I D :4C6565
2、个人邮箱:4C6565@aliyun.com
3、原创技术文章

idea 一键将spring boot 打包部署到docker并运行

环境

Linux:Vmware 16.1 + Ubuntu 20.4
docker:20.10
java:jdk8 + mvn 3.8 + idea 2021.2

1.在linux中安装docker

参考docker官方教程

1.1卸载旧版本

$ sudo apt-get remove docker docker-engine docker.io containerd runc

1.2更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:

  $ sudo apt-get update
  $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release

1.3 安装最新版本的Docker Engine和containerd

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

1.4 查看docker版本

$ docker -v
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907141817141-699313228.png

这里应该会报错说权限不够使用 sudo docker -v 可以,但是以后使用会很麻烦,就需要将当前用户添加到docker组中就可以了
  $ sudo groupadd docker #添加docker用户组
  $ sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
  $ newgrp docker #更新用户组

2.配置docker远程端口

2.1 修改docker配置文件

修改/usr/lib/systemd/system/docker.service文件在 ExecStart=/usr/bin/dockerd 后添加 -H tcp://0.0.0.0:2375
修改前:
[image]https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907143143363-597994295.png[/img]
修改后:
[image]https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907143257780-1417588967.png[/img]

2.2 配置完成后,保存,然后重启 Docker

  $ systemctl daemon-reload
  $ service docker restart

3.IDEA中docker配置

如下图将Linux的IP地址和刚配置的远程端口配置好,看到链接成功的字样就可以里
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907143933800-1538070739.png

如果此处不行需要查看防火墙是否开放了此端口,我这里直接关闭了防火墙。
$ sudo ufw disable # 关闭防火墙
$ sudo ufw status # 查看防火墙状态

4.创建springboot项目这里不在多说,然后就是创建Dockerfile文件

https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907144512592-396616439.png

#使用jdk8作为基础镜像
FROM java:8
#指定作者
MAINTAINER Lee
#暴漏容器的8080端口 -P 是用
#EXPOSE 8080
#将复制target文件中的jar为容器中的test.jar,相当于拷贝到容器中取了个别名
ADD target/*.jar /test.jar
#创建一个新的容器并在新的容器中运行命令
RUN bash -c 'touch /test.jar'
#设置时区 根据情况看是否需要
#ENV TZ=PRC
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相当于在容器中用cmd命令执行jar包  指定外部配置文件
ENTRYPOINT ["java","-jar","/test.jar"]

5. 配置dockerfile

https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907144824405-1643098560.png
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907144808726-1784967095.png
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907145123050-657690034.png

端口绑定相当于docker run -p 的作用将容器的端口映射到主机不然会拒绝链接。
执行前要选择添加maven,是运行前打包项目,不然每次运行都需要手动打包非常麻烦。

https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907145206510-317027873.png
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907145221131-1713203280.png
然后运行这个docker就可以看到下图:
https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907145325544-2038076860.png

可以看到镜像docker-demo:v1.0.0已经在Linux的镜像仓库中了,容器docker-test也已经运行了。

https://img2020.cnblogs.com/blog/1663778/202109/1663778-20210907150438258-553702615.png
这样就可以了。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2024-4-29 15:19
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 05:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表