前言

在学校学习的时候,要部署一个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远程连接

  • 修改docker.service文件

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

找到ExecStart在后面追加以下内容

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

需要注意的是,我这里配置的端口是2376,这是因为docker一般的远程连接端口是2375,由于我使用的是云服务器,怕被人利用来挖矿。。。虽然可能作用也不大~

另外,如果使用国内的云服务器,比如阿里云或者腾讯云,还需要去云服务器控制台配置安全组,把2376端口给暴露出来

重启docker让配置生效

systemctl daemon-reload systemctl restart docker

查看docker是否正常启动

systemctl status docker

本地连接演示

  • idea下载好docker插件

  • 配置docker连接

我上面的ip随便写的,看官写上自己的ip即可。

配置好后,下方会出现连接成功字样

如果连接失败,则需要仔细检查下ip和端口是否正确

  • 查看镜像和容器

    idea安装好docker插件后,slidebar上可以打开docker

就是中间这个Service,我不知道为什么叫这个名字,看别人很多博主的就叫docker

    • 点击连接

    • 查看镜像和容器

    • 甚至还可以创建容器和启动容器

推荐文章

一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!

需要认证的版本

生成CA证书及服务器公钥等

看了很多博文,这部分相对比较散乱一些,有一个博主根据其他博主的文章写了个脚本,并且写了很多注释,非常感谢!!!

我也是使用的该博主的脚本,稍稍改了下变量,下面是我使用的脚本,不知道为什么把脚本拷到博客园这边就不对,只好放在简书上面了

创建docker ca证书及服务器公钥脚本

  • 保存脚本到create_tls_certs.sh文件中,并把该脚本移动到/etc/docker目录中执行

    sh create_tls_certs.sh

  • 查看生成的证书和秘钥文件

修改配置文件开启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

重启docker让配置生效

systemctl daemon-reload systemctl restart docker

将证书及秘钥下载到本地

下载ca.pem,cert.pem和key.pem三个文件到本地

本地连接演示

  • 指定下载的证书和秘钥的目录

注意我这里是使用的https://hello:2376,这个hello是我在生成证书的脚本中配置的

还需要配置本机的hosts

连接成功后的操作就和上面讲的不需要认证的操作一样~

推荐文章

Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)

centos7为docker配置远程TLS验证,端口设定为2376

centos7 docker开启认证的远程端口2376配置教程

Docker 远程连接 -- dockerd 命令详解

Docker开启远程访问(非认证模式)

618推荐

【腾讯云】618云聚惠,百款云产品限量抢购,1核2G云服务器首年95元

https://cloud.tencent.com/act/cps/redirect?redirect=1059&cps_key=4af64fef8b27cbf2ed77ea881690abbd&from=console

Docker开启远程连接,本地IDEA使用docker插件连接(不认证的版本和认证的版本都有)的更多相关文章

  1. docker 开启远程

    # vi /etc/init.d/docker   在start()中加入:$exec -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -d & ...

  2. docker开启远程tcp监听端口

    linux 测试成功 cat > /etc/systemd/system/docker.service.d/tcp.conf <<EOF [Service] ExecStart= E ...

  3. docker 部署 mongodb 并且开启远程连接

    mongodb 使用 docker 部署 mongodb 拉取镜像 docker pull mongo 可以查看镜像是否下载成功 docker images | grep mongo 应该会有如下的显 ...

  4. Docker配置阿里云镜像加速器及开启远程连接

    适用于CentOS-7版本 mkdir /etc/docker vim /etc/docker/deamon.json 添加以下内容配置镜像 { "registry-mirrors" ...

  5. Docker开启安全的TLS远程连接

    目录 1.1 不安全的远程访问方式 1.1.1 编辑docker.service文件: 1.1.2 重新加载Docker配置生效 1.1.3 警告! 2.1 建立基于TLS数字签名的安全连接 1.1 ...

  6. CentOS7 docker开启tcp端口并进行客户端远程连接

    #docker版本:18.09.0,最好保证客户端端口和服务端端口相同 [root@Centos7 ~]# dockerd-ce -v Docker version , build 4d60db4 网 ...

  7. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (一)ubuntu18.04配置n ...

  8. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (三)配置远程桌面连接访问dock ...

  9. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (二)nvidia docker配 ...

随机推荐

  1. layui 表单验证汇总

    1 表单自带校验 lay-verify:是表单验证的关键字有以下值供选择: required 必填项phone 手机号email 邮箱date 日期url 链接identity 身份证number 数 ...

  2. 基于PHP实现CMS识别

    最近正在开发一款基于PHP实现的Web安全检测平台,写到了CMS识别这一功能,便写一篇文章总结一下. 首先需要梳理的是CMS识别的几种方法: 1.网页源代码特征:例如源代码中包含CMS的名称或是某种特 ...

  3. Java Jar源码反编译工具那家强

    本文介绍下Java Jar常见的反编译工具,并给出使用感受. 反编译JAR能干什么: 排查问题.分析商业软件代码逻辑,学习优秀的源码思路. JD-GUI 下载地址:http://java-decomp ...

  4. C++——大小写转换

    代码如下: #include <iostream> using namespace std; int main() { char ch; cin>>ch; if(ch>' ...

  5. 关于pom.xml文件中配置jquery,以及如何在jsp中引入

    pom.xml <!-- 对jquery的支持 --> <dependency> <groupId>org.webjars.bower</groupId> ...

  6. Unity3D获得服务器时间/网络时间/后端时间/ServerTime,适合单机游戏使用

    说明 一些游戏开发者在做单机游戏功能时(例如:每日奖励.签到等),可能会需要获得服务端标准时间,用于游戏功能的逻辑处理. 问题分析 1.自己如果有服务器:自定义一个后端API,客户端按需请求就行了: ...

  7. get、post请求方式区别

    1.get请求只有请求头,没有请求体,它的参数只能写在url里面,post请求数据放在请求体里面 (HTTP协议:两台电脑交互url请求头Request Headers:一些额外的信息,比如用的什么浏 ...

  8. 万字详解 TDengine 2.0 数据复制模块设计

    ​导读:TDengine分布式集群功能已经开源,集群功能中最重要的一个模块是数据复制(replication),现将该模块的设计分享出来,供大家参考.欢迎大家对着设计文档和GitHub上的源代码一起看 ...

  9. Fiddler无法抓取web项目中的http请求解决方案

    问题:webform项目中对接API使用Fiddler无法获取该API的请求,该webform比较老的一个项目, 同一个API写在控制台可以抓取到请求,用web项目放在本地IIS却不行,使用IIS E ...

  10. 解决spark streaming集成kafka时只能读topic的其中一个分区数据的问题

    1. 问题描述 我创建了一个名称为myTest的topic,该topic有三个分区,在我的应用中spark streaming以direct方式连接kakfa,但是发现只能消费一个分区的数据,多次更换 ...