1. 程式人生 > >Docker數據管理

Docker數據管理

Docker數據管理

Docker數據管理

docker使用過程,需經常更改容器內數據,並且需要備份及共享數據,這是需要對容器數據進行管理,管理方式主要分為數據卷及數據卷容器。
技術分享圖片

一、數據卷(一個可供容器使用的特殊目錄,繞過文件系統)

1、數據卷可以在容器之間共享和重復使用
2、對數據卷的修改會立即生效
3、對數據卷的更新,不影響鏡像
4、卷會一直存在,直到沒有容器使用
5、數據集的使用方式,類似於mount操作
6、選擇-v還是--mount參數
Docker 新用戶應該選擇--mount參數,經驗豐富的 Docker 使用者對-v或者-volume已經很熟悉了,但是推薦使用--mount參數。(我用的是-v)
示例如下:

1)創建一個數據卷 docker volume create (卷名)
docker volume create my-vol
技術分享圖片

2)查看所有數據卷 docker volume ls
技術分享圖片

3)查看指定數據卷信息 docker volume inspect (卷名)
docker volume inspect my-vol
技術分享圖片

二、掛載主機目錄並啟動一個掛載數據卷的容器

在用docker run 命令的時候,使用--mount標記來將數據卷掛載到容器裏。在一次docker run中可以掛載多個數據卷 。
示例如下:
1、創建一個名為web的容器,並加載一個數據卷到容器的/html/目錄。

docker run -it -p 192.168.152.159:6000:80 --name web -v /html/:/my-vol/ docker.io/nginx /bin/sh
技術分享圖片

2、在掛載目錄/html/下隨便創建文件或者目錄 touch /html/666
技術分享圖片

3、切換到web容器查看/my-vol/目錄 docker attach ac
技術分享圖片
註:以上加載數據卷完成!

4、查看數據卷的具體信息 docker inspect (容器名)
docker inspect web
技術分享圖片
技術分享圖片

5、刪除數據卷
數據卷是被設計用來持久化數據的,它的生命周期獨立於容器,Docker不會在容器被刪除後自動刪除數據卷,並且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷。如果需要在刪除容器的同時移除數據卷。可以在刪除容器的時候使用docker rm -v這個命令,也可以使用docker volume rm (卷名)

docker volume rm my-vol
技術分享圖片
註:當無主容器的數據卷可能會占據很多空間,切記定期清除,釋放空間。

三、通過數據卷容器遷移數據

1、創建名字為nginx_8容器,將web中的數據卷掛載,再將當前真機目錄掛載到容器的/backup/目錄當nginx_8容器運行後,歸檔web容器數據卷/my-vol目錄到nginx_8容器的/backup目錄(而/backup目錄又由linux主機當前目錄掛載,因此歸檔出的文檔歸檔到linux主機當前目錄下)
docker run --volumes-from (容器名) -v (真機當前目錄):(容器內備份目錄) --name (新的容器名)nginx:latest tar cvf /backup/backup.tar /(容器內存在的目錄)
技術分享圖片

2、查看當前主機當前目錄情況 ls
技術分享圖片

3、進入容器並刪除掛載目錄下的文件 rm -rf my-vol/*
技術分享圖片

4、恢復誤刪除容器裏的文件 docker run --volumes-from web -v $(pwd):/backup nginx:latest tar xvf /backup/backup.tar
技術分享圖片

5、查看容器裏已刪除文件 ls my-vol
技術分享圖片
註:以上簡單介紹了docker數據管理使用方法!

Docker數據管理