好的,以下是用 Docker 部署 ddns-go 的步骤和一些常用的配置:
1. 拉取 ddns-go 镜像:
docker pull jeessy/ddns-go
2. 创建 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
注意事项:
- 防火墙: 确保你的服务器防火墙允许访问 9876 端口。
- 配置文件: 强烈建议使用
-v
挂载配置文件,方便修改和持久化。
- 权限问题: 如果遇到权限问题,可以尝试设置
PUID
和 PGID
环境变量。
- 日志查看: 如果遇到问题,查看容器日志可以帮助你找到原因。 使用
docker logs ddns-go
命令。
- 更新镜像: 定期更新 ddns-go 镜像以获取最新功能和安全修复。 使用
docker pull jeessy/ddns-go
更新镜像,然后重启容器。
希望这些信息能帮助你成功部署 ddns-go。 如果你遇到任何问题,请随时提问。