下面是用 Docker 部署 ddns-go 的完整步骤与常用配置。
1. 拉取 ddns-go 镜像
先拉取 ddns-go 镜像:
docker pull jeessy/ddns-go2. 创建并运行 Docker 容器
这是核心步骤,需要根据实际需求配置环境变量和端口映射。以下是一个常用的 docker run 命令示例:
docker run -d \
--name ddns-go \
--restart always \
-v /path/to/your/config:/root/ddns-go \ # 建议挂载配置文件,方便修改和持久化
-p 9876:9876 \ # 映射 Web UI 端口 (默认 9876)
-e PUID=1000 \ # (可选) 设置用户 ID,避免权限问题 (通常与宿主机用户 ID 相同)
-e PGID=1000 \ # (可选) 设置用户组 ID,避免权限问题 (通常与宿主机用户组 ID 相同)
jeessy/ddns-go命令参数说明
-d:在后台运行容器 (detached mode)。--name ddns-go:给容器命名为 “ddns-go”。--restart always:让容器在重启时自动启动。-v /path/to/your/config:/root/ddns-go:非常重要!将宿主机的/path/to/your/config目录挂载到容器内的/root/ddns-go目录。需要先在宿主机上创建一个目录,例如mkdir -p /opt/ddns-go/config,然后将/opt/ddns-go/config替换为/path/to/your/config。ddns-go 会自动在这个目录下生成config.yaml配置文件。强烈建议配置此挂载点,否则容器重启后配置会丢失。-p 9876:9876:将宿主机的 9876 端口映射到容器内的 9876 端口 (ddns-go 的 Web UI 默认端口)。可以通过http://your_server_ip:9876在浏览器中访问 Web UI。-e PUID=1000和-e PGID=1000:可选但推荐!设置容器内的用户 ID (PUID) 和用户组 ID (PGID) 与宿主机上的用户 ID 和用户组 ID 相同。这可以避免文件权限问题,尤其是在挂载目录时。可以使用id命令在宿主机上查看你的用户 ID 和用户组 ID,将1000替换为实际值。jeessy/ddns-go:使用的镜像名称。
3. 配置 ddns-go
- 访问 Web UI:在浏览器中访问
http://your_server_ip:9876(将your_server_ip替换为你的服务器 IP 地址)。 - 设置 DNS 服务提供商:选择你的 DNS 服务提供商 (例如阿里云、腾讯云、Cloudflare 等)。
- 填写 API 密钥/Token 等信息:根据你选择的 DNS 服务提供商,填写相应的 API 密钥、Token 或其他认证信息。这些信息通常可以在你的 DNS 服务提供商的控制台中找到。
- 添加域名和 IP 地址来源:添加你想要更新的域名,并选择 IP 地址的来源 (例如自动检测、指定 IP 地址等)。
- 保存配置:保存你的配置。ddns-go 会自动检测 IP 地址变化并更新 DNS 记录。
4. 常用 Docker 命令
- 查看容器状态:
docker ps - 查看容器日志:
docker logs ddns-go - 停止容器:
docker stop ddns-go - 启动容器:
docker start ddns-go - 重启容器:
docker restart ddns-go - 进入容器 (用于调试):
docker exec -it ddns-go bash
5. 注意事项
- 防火墙:确保你的服务器防火墙允许访问 9876 端口。
- 配置文件:强烈建议使用
-v挂载配置文件,方便修改和持久化。 - 权限问题:如果遇到权限问题,可以尝试设置
PUID和PGID环境变量。 - 日志查看:如果遇到问题,查看容器日志可以帮助找到原因。使用
docker logs ddns-go命令。 - 更新镜像:定期更新 ddns-go 镜像以获取最新功能和安全修复。使用
docker pull jeessy/ddns-go更新镜像,然后重启容器。
小结
整个部署流程包括拉取镜像、创建并运行容器、在 Web UI 中完成配置以及掌握常用容器管理命令。创建容器时需配置端口映射 -p 9876:9876,并挂载配置文件 -v /path/to/your/config:/root/ddns-go;同时建议设置 PUID 和 PGID 环境变量,以避免权限问题。Web UI 配置包括选择 DNS 服务商、填写 API 密钥、添加域名和 IP 地址来源并保存。日常管理可使用 docker ps、docker logs、docker stop、docker start、docker restart、docker exec 等命令。还应注意检查防火墙设置、定期更新镜像,并在遇到问题时查看容器日志。重点是配置文件挂载以及正确设置 PUID 和 PGID,这样可以减少许多后续问题。
一起交流
分享你的思考,让讨论更进一步。