docker+idea+TLS:docker开启TLS保护的安全远程连接,idea远程连接docker

写在最前面

官网文档

关于docker如何开启远程连接,以及如何使用“内置的 HTTPS 加密套接字”来安全连接,docker官网上有非常详细的英文介绍,本文关于这部分的内容也大致上是官网文档的翻译。

参见:

  1. dockerd的命令行选项
  2. 使用TLS (HTTPS)保护Docker守护进程套接字

Docker Engine 客户端与服务端之间的通信

我们知道 Docker Engine 是一个客户端-服务器型的应用程序。dockerd作为一个守护进程在后台长时间运行(所以有时候也说是docker daemon)是docker的服务端。docker daemon不提供任何操作界面(CLI命令行或者图形界面),可供用户直接使用的操作界面由客户端(Docker CLI、各种docker的图形操作界面、idea的docker插件等等)提供。

docker demon提供了一套与之通信的api,并且支持unix域套接字、tcp和fd(Systemd socket activation)这三种套接字通信模式,通过dockerd的-H 选项来开启套接字支持,例如:

  • UNIX套接字:
    dockerd -H unix:///var/run/docker.sock
    
  • fd:
    dockerd -H fd://
    

危险的操作

By default, Docker runs through a non-networked UNIX socket. It can also optionally communicate using SSH or a TLS (HTTPS) socket.
——摘自docker官网

docker daemon默认是只开放UNIX域套接字来通信的,UNIX域套接字只能与本地的进程进行通信。也就是说默认情况下只能利用本地 Docker Engine 提供的docker CLI,使用docker命令来与docker daemon通信。如果要使用idea的docker插件来远程通信的话,就需要开启tcp:

例如:

dockerd -H tcp://0.0.0.0:2375

注意,上面的命令是非常危险的,应为它允许任意IP的2375端口与docker daemon直接进行通信,并且不需要任何身份认证。如果你的docker daemon主机处于外网环境,这样做会直接让你的docker daemon裸奔在互联网,任意ip都可以连上你的docker daemon来搞事情。

之前买的云服务器,按照百度来的做法,这样搞了。后来直接被ip在荷兰的黑客黑去挖矿了,血淋淋的教训啊

国内现状,大伙懂得都懂,一抄十、十抄百,没几个去真正研究的。即使是这种非常危险的操作,也没有任何说明(因为都是抄的,自己也没弄明白怎么回事儿)。所以,即使官网的英文文档写的很详细的了,我觉得也有必要再写篇博客来好好捋一捋docker如何开启使用TLS保护的安全远程连接,不至于让你的docker daemon裸奔在互联网。

idea的docker插件

idea有个docker插件,使用这个插件来操作docker非常方便。

在使用前需要在插件里配置docker,

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值