- 前言
- 下面切入正题,这里介绍不用认证,需要认证两个版本
- 1.1 不用认证的版本
- 1.1.1 修改docker.service文件
- 1.1.2 找到ExecStart在后面追加以下内容
- 1.1.3 重启docker让配置生效
- 1.1.4 本地连接演示
- 1.1.5 注意
- 1.2 需要认证的版本
- 1.2.1 生成CA证书及服务器公钥等
- 1.2.2 保存脚本到create_tls_certs.sh文件中,并把该脚本移动到/etc/docker目录中执行
- 1.2.3 修改配置文件开启docker远程连接及添加认证
- 1.2.4 重启docker让配置生效
- 1.2.5 将证书及秘钥下载到本地
- 1.2.6 本地连接演示
前言
要部署一个Java程序,一般是打成war包,放到服务器上的tomcat的webapp里面去;
后来SpringBoot出现内置了tomcat,就直接打成jar包,丢到服务器任何一个目录,只要服务器上安装了Java即可;
Docker出现以后,可以通过编写Dockerfile将jar包和Java环境集成到一个镜像里面,更加方便了;
在公司则是使用持续部署和持续集成,通过在gitlab上设置webhook触发k8s来拉取代码自己编译部署集成。
技术一直在发展,越来越自动化,使用越来越简单,我辈之幸~~
可以在idea安装docker和编写Dockerfile文件,开启远程docker的远程连接,使用idea本地docker插件连接到远程docker,这样就省去了
还要手动将jar包丢到服务器上用docker build构建镜像的过程,算是方便了很多。。。
当然,本文讨论的不是部署方式,而是如何开启docker远程连接,docker远程连接分两种,一种是不用认证的,只要修改了docker的配置并
让配置生效就可以连接了,另外一种稍微复杂一些,需要自行生成CA证书,服务器公钥,客户端公钥等等。
安装docker教程请自行百度,就几行命令,很简单
下面切入正题,这里介绍不用认证,需要认证两个版本
1.1 不用认证的版本
开启docker远程连接
1.1.1 修改docker.service文件
vi /usr/lib/systemd/system/docker.service
1.1.2 找到ExecStart在后面追加以下内容
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
需要注意的是,我这里配置的端口是2376,这是因为docker一般的远程连接端口是2375,由于我使用的是云服务器,怕被人利用。。。虽然可能作用也不大~
另外,如果使用国内的云服务器,比如阿里云或者腾讯云,还需要去云服务器控制台配置安全组,把2376端口给暴露出来
1.1.3 重启docker让配置生效
systemctl daemon-reload systemctl restart docker
- 查看docker是否正常启动
systemctl status docker
1.1.4 本地连接演示
idea下载好docker插件
- 到这里为止,Idea使用docker插件,不需要认证版本也就ok啦,不过不推荐
1.1.5 注意
【注】,这种方式需要开启docker允许公网访问,所以很容易被挖矿程序折磨,本人就经历过一次,所以为了安全起见,还是得配置一下证书,否则就用不了idea插件了,只有到服务器上手动build部署了。
话不多说,下面介绍需要认证版本
1.2 需要认证的版本
1.2.1 生成CA证书及服务器公钥等
这里贴一张博文,详细创建证书及公钥请看
创建docker ca证书及服务器公钥脚本
1.2.2 保存脚本到create_tls_certs.sh文件中,并把该脚本移动到/etc/docker目录中执行
sh create_tls_certs.sh
- 查看生成的证书和秘钥文件
1.2.3 修改配置文件开启docker远程连接及添加认证
vi /usr/lib/systemd/system/docker.service
除了添加开启远程连接
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
还要指定CA证书和公钥地址
–tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem
1.2.4 重启docker让配置生效
systemctl daemon-reload systemctl restart docker
1.2.5 将证书及秘钥下载到本地
下载ca.pem,cert.pem和key.pem三个文件到本地
1.2.6 本地连接演示
- 连接成功后的操作就和上面讲的不需要认证的操作一样~