本範例以域名代管在Cloudflare的方式,且使用cf api方式
搭配 linuxserver/ddclient 的image
前置作業、請先準備以下(Docker基礎安裝,本例已跳過)
1.CF的帳號
2.CF的API (不知如何取得,可參考先前單機部屬的範例教學
3.預先解析一筆要使用的 A紀錄、IP可以隨意輸入(本範例設置為lab005.drivercar.info)
先創建一路徑,請編好設定檔
#mkdir -p /docker/ddclient/config
#vi /docker/ddclient/config/ddclient.conf
內容如下
####################
protocol=cloudflare \
use=web, web=https://api.ipify.org/ \
[email protected] \
password='5???????????????????????a' \
daemon=5m \
zone=drivercar.info \
lab005.drivercar.info
####################
其中
//use=web, web=https://api.ipify.org/
代表以web訪問方式從api.ipify.org取得目前ip
//daemon=5m
代表每5分鐘更新一次,可以依照情境修改自己需要的時間
zone= 根域名
部屬前,確認當前解析的IP為自訂
PING lab005.drivercar.info (1.1.1.1) 56(84) bytes of data.
64 bytes from one.one.one.one (1.1.1.1): icmp_seq=1 ttl=57 time=5.40 ms
64 bytes from one.one.one.one (1.1.1.1): icmp_seq=2 ttl=57 time=5.57 ms

執行部屬、命令範例如下
######################
docker run -d \
--name=ddclient \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-v /path/to/ddclient/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/ddclient:latest
######################
TZ時區可以修改為 Asia/Taipei
而/path/to/ddclient/config請替換你當前的設定檔路徑
實例範例如下
######################
docker run -d \
--name=ddclient \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Taipei \
-v /docker/ddclient/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/ddclient:latest
######################

完成布署後,待3~5分鐘可以測試ping查看是否有成功修改目標IP
PING lab005.drivercar.info (220. .13) 56(84) bytes of data.
64 bytes from 220- -13.hinet-ip.hinet.net (220. .13): icmp_seq=1 ttl=255 time=0.659 ms
64 bytes from 220- -13.hinet-ip.hinet.net (220. .13): icmp_seq=2 ttl=255 time=0.543 ms

若當前IP已更換,想直接更新域名的解析,可以重啟container
#docker restart ddclient
進入容器
#docker exec -it ddclient /bin/bash
進入容器後↓↓↓↓
可以編輯設定檔
#vi /config/ddclient.conf
或手動強制更新命令
#ddclient -daemon=0 -debug -verbose -noquiet -file /config/ddclient.conf
看到 SUCCESS: updating lab005.drivercar.info:…
表示成功
