Idea通过Docker插件部署Java应用(看这一篇就足够了)
这里挺多内容其实在其他人的博客中都安装步骤和简单介绍(说一不说二,估计都是复制粘贴),我这里就简单说一下,主要说其中的问题和解决方案
主要的流程,步骤
- 安装docker
不多赘述了
- 开启docker远程端口
网上绝大部分介绍就是直接加上 -H tcp:0.0.0.0:2376 就完事了,确实好用,也确实有问题,分分钟成为别人矿机,就算你启用了安全组也可以直接连接,可以再另外一台装有docker的机器上尝试连接 docker -H tcp://123.123.123.123:2376 ps
vi /usr/lib/systemd/system/docker.service
//修改为下面这段
ExecStart =/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
- 打开idea安装docker插件
打开idea -> file -> settings -> Plugins -> 搜索docker -> 安装即可
- 配置插件
- 配置pom.xml
添加docker-maven-plugin 这个很简单网上很有多可以搜素一下(复制粘贴的) ```xml
6. 将Dockerfile文件放入项目根路径下(**和pom.xml同一级**)即可,当使用mvn package(**也可以改为其他命令**)时就会自动打包,并且生成镜像(**不会自动启动容器,需要手动**)
### 以上就是普通版本的配置,会有安全问题
> 起初我以为是安全组未生效的问题,后来以为是docker中redis的问题,分别进行了打补丁之后发现依然没有解决问题,最后能出问题的只有docker本身了,因为在未启用远程端口时并无此类问题,于是使用了远程加密连接方案
1. 首先使用openssl生成证书
> 网上有许多教程这里就不多讲了,只需要注意如果是IP访问,下面要写IP:否则写DNS
> echo subjectAltName = IP:123.123.123.123,IP:0.0.0.0 >> extfile.cnf
> 只挂一个官方的安全连接方案地址:[超级无敌传送门](https://docs.docker.com/engine/security/https/)
2. 修改上面第二步的配置
> ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.
> pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
> 注意改为自己刚刚生成证书的目录,修改好记得重启
3. 重新打开idea修改上面第4步的docker插件配置
> 改为Https,并且将服务器上生成的证书拿到本地(只需要ca.pem,cert.pem,key.pem)放入一个文件夹中,然后按照图片配置好文件夹路径
4. 最后还需要两个操作,第一步将上面存放证书的文件夹三个文件拷贝到项目路径中(**反正能找到就行**),第二步加一个dockerCertPath标签配置刚才放三个文件的位置
```xml
<dockerHost>https://123.123.123.123:2376</dockerHost>
<dockerCertPath>${project.basedir}/src/main/resources</dockerCertPath>
- 到这里才算完全的配置完成整套安装流程(撒花)
下面就可以开始愉快的使用环节
还不能撒花,在build image时候如果出现问题请检查上述步骤是否有误,检查Dockerfile是否有问题等,如果连接有问题检查2376端口是否被放开
我的idea是2019.3版本,打开services面板,配置一下各种启动属性(其实就是配置docker run xxxxx)
终于可以撒花了
总结一下
可以在idea面板内对docker进行一些操作,看到所有镜像容器的配置,可以直接修改,能实时看到日志,构建镜像速度其实还是有点慢,运行容器的速度是很快的,如果项目和其他中间件等是docker部署可以考虑使用这种简易的方案,还是挺方便的
