安装 Docker
使用官方安装脚本快速安装 Docker:

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

设置 Docker 开机自启并立即启动:

sudo systemctl enable --now docker

添加当前用户到 docker 用户组(避免每次用 sudo)

sudo usermod -aG docker $USER

生效方式:
推荐:重新登录终端会话
或使用临时方式立即生效

newgrp docker

验证是否配置成功:

docker info

若无权限报错,则配置已生效。

Docker 中部署 DDNS-GO
我们将使用 Docker 的 host 网络模式挂载主机目录,确保 DDNS 能正常检测本地 IP:

docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go

/opt/ddns-go 是主机目录,你可以替换为任意路径,用于持久化配置。

启动后,DDNS-GO 的配置文件为 .ddns-go.yaml,位于挂载目录中。

初始化配置
部署完成后,打开浏览器访问:

http://<Docker主机IP>:9876

你会看到 DDNS-GO 的初始化页面,如图所示:
2025-12-06T14:30:57.png
DDNS-GO 是一个开源的动态域名更新工具,支持多个域名服务商,我的域名托管在cloudflare上,所以需要在cloudflare上申请一个API-KEY来做这个更新。

TTL 建议设置为“自动”
IP 获取方式推荐使用外网 API(如 ipip.net)
2025-12-06T14:31:22.png
前往 Cloudflare 的 API Token 页面,为 DDNS-GO 创建一个具备修改 DNS 权限的 Token。

建议选择 “Edit zone DNS” 模板,只赋予必要权限,并可以限制在特定域名范围内使用。

2025-12-06T14:31:40.png

到域名的DNS管理页面,设置域名解析,然后把域名添加到DDNS-GO后台

验证 DDNS 的效果
我们尝试停止云主机后再重新开启,公网 IP 会发生变化:
2025-12-06T14:32:47.png

重启后 DDNS-GO 会自动检测 IP 变动并更新域名解析:

总结
即使云服务器没有绑定弹性公网 IP,借助 DDNS-GO 和 Docker,我们依然可以实现动态域名解析:

低成本:无需购买 EIP,节省开销;
自动化:IP 改变后自动更新域名解析;
易部署:Docker 一键运行,配置简单直观。