Docker 远程管理 Portainer
2024-10-08 update 安全提醒
直接暴露 Docker API 端口(2375)到公网没有任何加密和认证。配置完成后务必限制防火墙来源 IP,或配置 TLS 加密。否则可能被加密劫持蠕虫盯上。
配置好远程管理后不久,我收到了云服务器恶意文件通知,并在远程主机中发现了一个莫名的容器 boorish_agelast,运行着 ubuntu:18.04。经确认是针对 Docker 守护进程的加密劫持蠕虫 Cetus。如果你的 Docker 环境不需要频繁集中管理,建议先配置好 TLS 加密再开放远程端口:
本文内容基于 6053537/portainer-ce - Docker Image | Docker Hub 的汉化版。
远程主机设置
确保远程主机已安装 Docker
进入主机终端,输入命令:
nano /usr/lib/systemd/system/docker.service- 然后做以下修改:
# 将这一行
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 改为这样
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock- 最后再重启 Docker 即可
systemctl daemon-reload
systemctl restart docker- 记得在服务器的防火墙放开 2375 端口
Portainer 设置
- 环境 - 添加环境 - 独立的 Docker
- 选择 API 连接模式
- Docker API URL 处填写被远程连接的主机 IP+ 端口,如
6.6.6.6:2375 - 点击链接,完成。
参考资料
最后更新于