zoukankan      html  css  js  c++  java
  • Docker开启远程连接,本地IDEA使用docker插件连接(不认证的版本和认证的版本都有)

    前言

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

  • 相关阅读:
    mybatis---demo1--(1-n)----bai
    字符流之文件读写流
    字节字符转换流
    字节缓冲流
    字节流之数据输入输出流
    字节流之文件输出流FileOutputStream
    【洛谷P3916】图的遍历
    【codevs1297】硬币 完全背包
    【codevs2205】等差数列
    【洛谷P1214】等差数列
  • 原文地址:https://www.cnblogs.com/alinainai/p/12991941.html
Copyright © 2011-2022 走看看