轉載請注明出處
官網的數據以及各大博客都沒有對這個的具體說明,本人也是理解了好久。
我們使用docker的過程中,使用共享的數據卷是經常的,那么。我們要怎么進行備份呢?
首先,我們得了解下面4個命令
1:打包數據
tar -czvf /data/back.tar.gz /usr/
2:運行docker容器
docker run dbdata
3:掛載數據卷容器中的數據卷
docker run --volumes-from dbdata centos
掛載數據卷容器名為dbdata到新的容器中
4:掛載主機中現有的目錄當作數據卷
docker run -v /webapps:/data centos
把主機中/data目錄掛載到窗口中的/webapps目錄下
了解上面的4條命令后,我們就可以備份數據了
docker run --privileged=true --volumes-from dbdata -v /sb:/sb centos tar czvf /sb/backup.tar.gz /dbdata
參數說明
- --privileged=true 是為了避免訪問目錄權限不足的情況,這是由於selinux引起的。
- --volumes-from dbdata 是掛載需要備份的數據卷容器名稱,它就是一個容器。
- -v /sb:/sb 這是掛載主機目錄到窗口中,第一個/sb是代表着容器的目錄,第二個/sb是代表着主機的目錄。
- centos 是代表着容器的REPOSITORY的ID,這個ID可以用docker images命令查看。
- tar czvf /sb/backup.tar.gz /dbdata 這部分放在后面,代表着容器啟動成功后的命令。這部分就是對數據卷進行壓縮,/sb/backup.tar.gz 這個目錄是掛載的主機的目錄,只要壓縮到這個目錄,那就相當於主機的目錄也就有了相應的數據, /dbdata這個目錄是掛載的數據卷容器中的目錄,綜合起來就是一組壓縮命令,正好實現了把數據卷中的數據備份到當前主機中。
完
