底層採用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.
https://www.portainer.io/
docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer 今天發現一個docker gui管理工具
https://www.portainer.io/
很符合簡單管理
先用docker-machine開一台機器,直接就是docker ready的VM ,VM可以是virtualbox等等
然後登入後,直接用 啟動 portainer的docker,管理這台機器上的docker
有圖形化介面,可以看到每一個docker使用情況,又可以直接登入到docker內,web terminal,這樣就有符合實際使用情況了
docker資料有用volume寫到本機vm內,再把整台vm打包備份的話,資料又不容易不見
原始連結 https://mp.weixin.qq.com/s/tHRl5OQHY2mNXqKwACCVWw
非常不錯!
http://dockone.io/article/8390
https://blog.csdn.net/u011166225/article/details/84940228
对于个人开发者来说,在一定情况下很好用。但是对于构建管理项目或者提供构建流程管理的Devops项目而言却是个灾难–本地存储结构不能对用户开放,它们也不能干扰用户本身的构建流程。所幸的是,Moby umbrella的开发团队注意到了这一点,他们希望通过重构存储管理和容器快照来解决一部分问题,于是BuildKit诞生了。
-——————–
作者:狗蛋丶
来源:CSDN
原文:https://blog.csdn.net/u011166225/article/details/84940228
版权声明:本文为博主原创文章,转载请附上博文链接!
http://dockone.io/question/1516
巨坑!
Centos7默认xfs文件系统与docker默认overlay2存储驱动不匹配,会导致容器内文件无法删除等问题
https://blog.csdn.net/weixin_41826563/article/details/80549323
wx65251206
再次遇到这个问题,终于还是发扬刨根问题的精神,经过一上午的百度,google,bing
终于找到根本原因。
这里记录一下,为了帮助后面的人,同时也提醒自己。
问题原因与docker无关,在于linux内核版本。
测试有问题的内核版本是Red Hat 4.8.3-9—对应的发行版是CentOS7.2
dpsrm < pattern docker cantainer name >
#!/bin/sh IFS=$'\n' echo $1 docker ps -a --no-trunc | grep $1 | awk '{print $1}' | xargs -r --no-run-if-empty docker stop docker ps -a --no-trunc | grep $1 | awk '{print $1}' | xargs -r --no-run-if-empty docker rm docker rmi -f $(docker images | grep $1 | awk '{print $3}')