当拥有不只一台Linux服务器的时候就会想着把多台服务器的docker进行统一管理,而直接使用docker daemon socket是很不安全的,应为没有任何加密并且没有身份验证,任何人知道暴露的端口就可以操作本机的docker,而docker需要root权限运行,所以约等于让人得到了root权限。
为了解决这个问题,就需要启用证书的认证。
使用的平台
注:服务器信息经过处理
- Portainer Web服务器 地址:192.168.1.1
- 须启用docker daemon socket的远程主机 地址:192.168.2.1
两台主机系统均为Debian,并已经安装好了Docker
申请证书、修改配置这些操作均在须启用docker daemon socket的远程主机
进行操作
签发证书
这里使用自签名证书
这里创建一个文件夹用于存放所有证书
生成 CA 公钥和私钥
创建 Server 端证书
请自行替换本机地址
与本机域名
创建 client 证书
修改docker的配置
修改/etc/default/docker文件
这里需要向文件中写入以下内容
修改/lib/systemd/system/docker.service文件
修改或添加以下内容
重启docker
修改ufw
根据上方修改的配置,我们的docker会监听来自2375
端口的请求,所以我们需要放行2375
端口
连接远端的主机
现在我们回到Portainer Web服务器
,可参考下图经行连接远程主机
参考文章