https://www.phoronix.com/scan.php?page=article&item=freebsd-12-zfs&num=1&fbclid=IwAR2utCninwUWUjjt_5IUu-1-rfm3vcCc1SiOvuZrYf4Bu0sW0HVsh9-lvQA
https://dappradar.com/
https://medium.com/taipei-ethereum-meetup/ether-shrimp-farm-analysis-e92ab76dc22f
底層採用PVE(Proxmox),建立KVM VM,KVM VM使用docker-machine或是自建用boot2docker iso做好backup,使用時直接restore
docker 執行時 Restart policies:always,這樣VM開機就會自動執行,不需要另外再設定。
Volume 直接用docker-compose YAML volume減少權限問題,資料也會儲存在VM內,使用VM後,備份是以VM為主,不用擔心資料遺失
一個VM放多個docker、整組docker-compose 或 一個VM放單一功能docker可以自己決定
VM可以被快照保護,一但出問題,還原後、開完機,VM內的docker會自動起服務,資料也是存在的,減少docker backup&resotre問題
為了管理docker方便,第一次建立VM時,執行Portainer always,可以backup,將來每一個VM都可以利用圖形界面查看docker運作情況
缺點:
硬碟空間使用受限於KVM,擴充大小有可能需要重開機
線上移轉只能以VM,不能用docker,但docker設計上也不走線上移轉
為什麼需要用到docker呢?
因為現在很多專案有直接提供docker使用,確實可以減少大量安裝時間,
但volume資料儲存、權限卻是最大的問題,上述架構可以解決這部份顧慮。
https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes
$ docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata ???
Real Demo Example:
mongo cantainer
mongo: image: mongo #restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: - alldata:/data/db networks: - fastdev volumes is /data/db
docker running name is testbackup_mongo_1_1c9e49740f2e (this use docker ps check your run time docker name. Don’t copy)
run
$ docker run --rm --volumes-from testbackup_mongo_1_1c9e49740f2e -v $(pwd):/backup ubuntu tar cvf /backup/backup.
renew manually dns
acme.sh --issue -d *.oooxxx.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please Cer Key /root
cp ~/.acme.sh/\*.oooxxx.com/\*.oooxxx.com.cer wildcardoooxxx.cer cp ~/.acme.sh/\*.oooxxx.com/\*.oooxxx.com.cer wildcardoooxxx.key