一、编辑docker.service文件 vi /usr/lib/systemd/system/docker.service 找到 [Service] 节点,修改 ExecStart 属性,增加 -H tcp://0.0.0.0:2375 ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 这样相当于对外开放的是 2375 端口,当然也可以根据自己情况修改成其他的。 二、重新加载Docker配置生效 systemctl daemon 【Docker开启远程安全访问教程】 在IT行业中,Docker是一种广泛应用的容器化技术,它允许开发者打包应用及其依赖环境,以实现可移植和可重复部署。然而,默认情况下,Docker守护进程仅监听本地环回接口,不允许远程访问。本教程将详细讲解如何在Linux系统上安全地开启Docker的远程访问。 一、编辑Docker服务配置 在开启远程访问前,我们需要编辑Docker的服务配置文件。这个过程涉及到修改`docker.service`文件,通常是位于`/usr/lib/systemd/system/docker.service`。找到`[Service]`节点,将`ExecStart`属性修改为以下内容: ```bash ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 ``` 这里的`-H tcp://0.0.0.0:2375`参数意味着Docker守护进程将监听所有网络接口(0.0.0.0)的2375端口,允许外部连接。你可以根据需求更改端口号。 二、重新加载Docker配置并重启服务 完成配置修改后,需要重新加载Docker服务配置使其生效,并重启Docker守护进程: ```bash systemctl daemon-reload systemctl restart docker ``` 接着,可以通过浏览器访问`http://ip:2375/version`来测试Docker API是否已开放。如果无法访问,可能需要开放防火墙2375端口,例如使用以下命令: ```bash firewall-cmd --zone=public --add-port=2375/tcp --permanent firewall-cmd --reload ``` 对于云服务器,如阿里云或腾讯云,还需检查并更新安全组规则,允许2375端口的入站流量。 三、配置Docker安全访问 尽管上述步骤让Docker可以远程访问,但直接开放2375端口存在安全隐患。因此,建议使用基于CA证书的加密方法来保护Docker API: 1. 创建CA私钥和公钥: - 创建一个名为`ca`的目录,用于存储私钥和公钥。 - 生成CA私钥:`openssl genrsa -aes256 -out ca-key.pem 4096` - 设置一个密码(如`niceyoo`)并完成CA证书信息:`openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem` 2. 补全CA证书信息,根据提示输入相应内容。 3. 生成服务器密钥:`openssl genrsa -out server-key.pem 4096` 4. 使用CA签署服务器公钥,指定允许连接的IP地址或域名: - 如果是IP地址:`openssl req -subj "/CN=10.211.55.4" -sha256 -new -key server-key.pem -out server.csr` - 如果是域名:`openssl req -subj "/CN=www.sscai.club" -sha256 -new -key server-key.pem -out server.csr` 5. 创建一个扩展文件`extfile.cnf`,用于配置白名单,限制允许的远程连接IP。例如,允许两个IP地址: ```bash echo "subjectAltName = DNS:$HOST,IP:XX.XX.XX.XX,IP:XX.XX.XX.XX" >> extfile.cnf ``` 6. 生成服务器证书并签署: ```bash openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf ``` 7. 更新Docker守护进程配置,使用新的证书和密钥: ```bash mkdir -p /etc/docker/certs.d/your-server-ip-or-domain cp server-cert.pem /etc/docker/certs.d/your-server-ip-or-domain/server.pem cp server-key.pem /etc/docker/certs.d/your-server-ip-or-domain/server-key.pem cp ca.pem /etc/docker/certs.d/your-server-ip-or-domain/ca.pem ``` 8. 重启Docker守护进程以应用新配置。 现在,Docker守护进程将以安全的方式监听远程连接,只有指定的IP或域名才能连接。这大大提高了系统的安全性,防止未经授权的访问。务必在生产环境中遵循这些安全实践,以避免潜在的安全风险。
- 粉丝: 9
- 资源: 948
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0