作者:故事我忘了
个人微信公众号:程序猿的月光宝盒

目录

1. 方式1.通过idea 远程发布

1.1 修改docker.service文件

1. 进入服务器

vim /usr/lib/systemd/system/docker.service

2. 修改ExecStart行为下面内容,把原来的注掉

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

3. 重加载

systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker

4. docker相关命令进行重开原有服务

1.2 验证

1. 查看端口情况

netstat -nlpt

2. 调用

 curl http://127.0.0.1:2375/version

3. 出现下面的就表示成功

{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"20.10.6","Details":{"ApiVersion":"1.41","Arch":"amd64","BuildTime":"2021-04-09T22:43:57.000000000+00:00","Experimental":"false","GitCommit":"8728dd2","GoVersion":"go1.13.15","KernelVersion":"3.10.0-1127.19.1.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.4.4","Details":{"GitCommit":"05f951a3781f4f2c1911b05e61c160e9c30eaa8e"}},{"Name":"runc","Version":"1.0.0-rc93","Details":{"GitCommit":"12644e614e25b05da6fd08a38ffa0cfe1903fdec"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"20.10.6","ApiVersion":"1.41","MinAPIVersion":"1.12","GitCommit":"8728dd2","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-1127.19.1.el7.x86_64","BuildTime":"2021-04-09T22:43:57.000000000+00:00"}

Tips

1.vim 搜索字符串

1. 命令模式下,输入:/字符串
比如搜索user, 输入/user
2. 查看下一个匹配,按下n(小写n)
3. 跳转到上一个匹配,按下N(大写N)
4. 搜索后,我们打开别的文件,发现也被高亮了,怎么关闭高亮?
命令模式下,
输入:nohlsearch
也可以:set nohlsearch
当然,可以简写:
noh
或者 set noh。

2.安全组记得开

3.idea配置,名字可以改

然后会在service窗口中出现

点击左上角运行就能看到服务器上已经在的容器

4.配置阿里云镜像加速器,不会的百度吧

1.3 编辑代码pom.xml

<properties>
<java.version>1.8</java.version>
<!-- Step.1 设置docker镜像前缀-->
<docker.image.prefix>jinsc</docker.image.prefix>
</properties>
<!-- Step.2     添加插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version> <configuration>
<!--远程docker地址-->
<dockerHost>http://x.x.x.x:2375</dockerHost>
<!--镜像名称,前缀/项目名-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--dockerFile的位置-->
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<!--默认的target文件夹位置-->
<directory>${project.build.directory}</directory>
<!--最终名称.jar-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

1.4 main中新建文件夹docker,并新建Dockerfile文件

Dockerfile

FROM java:8
VOLUME /tmp
ADD provider-0.0.1-SNAPSHOT.jar /test.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]

其中 provider-0.0.1-SNAPSHOT.jar是打出来的jar包名字

1.5 运行maven命令

maven的clean+package

在运行插件中docker的build

就能远程推送到远端

//镜像id
Successfully built 13b4c048a7e6
// 项目名和版本号
Successfully tagged jinsc/provider:latest
[INFO] Built jinsc/provider
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 52.797 s
[INFO] Finished at: 2021-10-22T15:07:58+08:00
[INFO] ------------------------------------------------------------------------

连上服务器,已经有了

1.6 idea 服务窗口的docker中右键创建容器

点击运行就已经创建了

访问就有了

我这里是ws测试地址

用写的客户端已经连接并解析到

2. 方式2.传统模式

2.1 maven package 打包

2.2 把打的包放到服务器上

2.3 在服务器上创建文件夹

[root@VM-0-9-centos /]# cd usr/local/
[root@VM-0-9-centos local]# ls
bin etc games include lib lib64 libexec qcloud sbin share src yd.socket.server
[root@VM-0-9-centos local]# mkdir docker
[root@VM-0-9-centos local]# ls
bin docker etc games include lib lib64 libexec qcloud sbin share src yd.socket.server
[root@VM-0-9-centos local]# cd docker/
[root@VM-0-9-centos docker]# ls
[root@VM-0-9-centos docker]# mkdir SB4WS
[root@VM-0-9-centos docker]# ls
SB4WS
[root@VM-0-9-centos docker]#

2.4 把jar放进去

2.5 创建并编辑Dockerfile

vim Dockerfile

FROM java:8

VOLUME /tmp
ADD provider-0.0.1-SNAPSHOT.jar /provider.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/provider.jar"]

意思分别是

FROM : 

​	表示基础镜像.运行环境

VOLUME /tmp:

​	  是创建tmp目录并持久化到Docker数据文件夹,因为sb使用的是内嵌的Tomcat,默认使用/tmp作为工作目录

ADD: 

​		拷贝文件并重命名,就是把前面的复制到后面的

EXPOSE :

​		并不是正真的发布端口,这个只是容器部署人员和建立image人员之间的交流,即简历image的人员告诉容器部署人员容器应该映射哪个端口给外界

ENTRYPOINT(入口点): 

​		容器启动时运行的命令 ,相当于在命令行中输入 java -jar xxx.jar,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向 /dev/./urandom 作为ENTRYPOINT

2.6 创建镜像(在刚才的文件夹下)

docker build -t provider .

已经ok

2.7 创建容器

docker run -d --rm --name provider-8080 -p 8080:8080 provider

PS 另一个(可以部署多个容器) 外网的:程序定的
docker run -d --rm --name provider-8081 -p 8081:8080 provider

Tips:

1.查看日志

docker logs -f --tail=500 provide-8080

2.进入容器内部 -it(交互) 后跟id号

docker exec -it 96f93cc3b918 bash

3.在docker内部安装vim

实际在使用过程中,运行 apt-get update,然后执行 apt-get install -y vim,下载地址由于是海外地址,下载速度异常慢而且可能中断更新流程,所以做下面配置

mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
apt-get update
apt-get install vim

SpringBoot打包到docker(idea+传统方式)的更多相关文章

  1. SpringBoot 打包为Docker进行

    可以有两种方式: 1.dockerfile 2.maven docker 第一种方式:通过dockerfile打包Docker镜像 1.将dockerfile和 springboot打包的jar文件放 ...

  2. SpringBoot打包成Docker镜像

    1. 本文环境 Maven:3.6.3(Maven配置参考) SpringBoot version:2.3.4.RELEASE Docker version: 19.03.11(Docker搭建参考) ...

  3. 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)

    写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...

  4. JAVA SpringBoot 项目打包(JAR),在打包成 docker 镜像的基本方法

    1,打包 SpringBoot 项目,使用 IDEA 如下图 2,将 JAR 包上传到安装了 Docker 的 linux 服务器上,并且在相容目录下创建一个名为 Dockerfile 的文件 3,在 ...

  5. Java SpringBoot 项目构建 Docker 镜像调优实践

    PS:已经在生产实践中验证,解决在生产环境下,网速带宽小,每次推拉镜像影响线上服务问题,按本文方式构建镜像,除了第一次拉取.推送.构建镜像慢,第二.三-次都是几百K大小传输,速度非常快,构建.打包.推 ...

  6. springboot打包不同环境配置与shell脚本部署

    本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...

  7. SpringBoot打包成war

    关于SpringBoot打成jar包以及jar包如何在Linux持久运行,我在前面已经说过了,所以本次不再赘述. 关于SpringBoot打包成war,其实步骤特别简单,如下图所示(如果是jar,通常 ...

  8. springboot打包去除资源文件,启动时指定配置文件位置,使用log4j2替换默认logback

    springboot打包时,去掉资源文件 <build> <resources> <resource> <directory>src/main/reso ...

  9. 操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?

    ylbtech-操作系统-容器-Docker:如何将应用打包成为 Docker 镜像? 1.返回顶部 1. 虽然 DockerHub 提供了大量的镜像,但是由于企业环境的多样性,并不是每个应用都能在 ...

随机推荐

  1. elementUI+nodeJS环境搭建

    一. ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的, 所以饿了吗推出了基于VUE2.0的组件库,它的名 ...

  2. Git 系列教程(11)- 分支简介

    前言 很多版本控制系统都有分支这个概念 使用分支意味着可以将日常工作从主线上脱离,从而避免影响主线 Git 鼓励在工作流程中频繁使用分支和合并 Git 是如何保存数据的 Git 保存的不是文件的变化或 ...

  3. 模拟BS服务器

    一.模拟BS服务器分析 二.BS模拟服务器代码实现 图片都是单独请求,后台单独线程,这边是通过构造方法传入的Runable接口的实现类匿名对象创建线程: 创建本地输入流读取到网络输出流传过来的信息再放 ...

  4. 日期SQL 脚本

    一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)本周的星期一     SELECT DATEADD(wk, DATEDIFF(wk,0,g ...

  5. Excel怎么把两个单元格中的文字合并到一个单元格中

    使用&符号,可以将字符串和单元格中的内容拼接起来

  6. JavaScript深拷贝实现方式

    1.递归 function deepCope (obj) { // 要拷贝的数据为引用类型属性(数组或对象) if (obj && typeof obj === 'object') { ...

  7. Java集合:HashMap

    Hashmap是一个存储key-value的映射表. 优点: 索引数据快,查找一个数据对的时间复杂度是O(1) 增加.删除一个数据的时间复杂度是O(1) key不能重复,可以存储一个null值 存储: ...

  8. k8s工作负载资源之deployment

    首先我们要理解:一个应用跑在k8s集群上了,那么这个应用就是一个工作负载(workloads). 在k8s中会用pod的来承载这个应用,那么负责管理这个pod的东西就叫工作负载资源(workload ...

  9. js 签字插件

    1.jq-signature  http://bencentra.github.io/jq-signature/    支持的jquery版本低 2.HTML5 canvas   http://www ...

  10. TP5数据库数据变动日志记录设计

    根据网友的设计进行了部分调整: 用户分为管理员admin表和用户user表 记录操作表数据 增删改: insert/delete/update <?php /** * OperateLog.ph ...