1. 程式人生 > >Docker資料卷操作

Docker資料卷操作

一、Docker資料卷操作——建立資料卷

語法:docker volume create 資料卷名
示例:
1.建立一個名稱為my_volume的資料卷
docker volume create my_volume

二、Docker資料卷操作——檢視資料卷

語法:docker volume ls [OPTIONS]
Options:
-q :靜默模式,只顯示資料卷名。
示例:
1.檢視當前所有資料卷的名稱
docker volume ls -q

三、Docker資料卷操作——檢視資料卷詳細資訊

語法:docker volume inspect 資料卷名
示例:
1.檢視資料卷my_volume的詳細資訊
docker volume inspect my_volume

四、Docker資料卷操作——掛載資料卷

-v or --volume 語法
它有三部分組成,使用:進行分割,這些欄位必須以正確的順序排列,並且每個欄位的含義不明顯。
第一個欄位是 Docker Host 上的一個檔案或者目錄。
第二個欄位是將要掛載到容器上的一個檔案或者目錄。
第三個欄位是可選的,用來增加一些附加選項,比如 ro,consistent,delegated,cached,z,and Z。

--mount 語法
它由一組鍵值對組成,由,進行分割,每個值為 <key>=<value>。
Key Value
type bind、volume、tmpfs,如不指定,預設是 volume
source/src Docker Host 上的一個檔案或者目錄
destination/dst/target 被掛載容器上的一個檔案或者目錄
readonly 沒有引數,只寫這個詞即可
bind-propagation rprivate、private、rshared、shared、rslave、slave
consistency consistent、delegated、cached,只在 Mac 系統上生效
兩者區別
使用-v的時候,如果在 Docker Host 不存在要掛載的檔案或者目錄,Docker 將會自動進行建立,通常是一個目錄。
使用--mount的時候,如果在 Docker Host 不存在要掛載的檔案或者目錄,Docker 不會自動建立目錄,並生成一個錯誤。
示例:
1.使用-v命令將資料卷my_volume掛載到容器my_container的/data目錄:
docker run --name my_container -d -v my_volume:/data -it contos /bin/bash
2.使用--mount標記將資料卷my_volume掛載到容器my_container的/data目錄:
docker run --name my_container_1 -d --mount source=my_volume,target=/data -it centos /bin/bash
3.使用-v命令將本地目錄/data/datavolume掛載到容器的/data目錄:
docker run -it -v /data/datavolume:/data centos /bin/bash
4.使用-v命令將本地目錄/data/datavolume以只讀許可權掛載到容器/data目錄:
docker run -v /data/datavolume:/data:ro -it ubuntu /bin/bash
5.使用--mount標記將本地目錄/data/datavolume以只讀許可權掛載到容器/data目錄:
docker run --mount type=bind,source=/data/datavolume,target=/data,readonly -it centos /bin/bash

五、Docker資料卷操作——掛載資料卷容器的方法

語法:docker run --volumes-from [CONTAINER NAME]

六、Docker資料卷操作——刪除資料卷

示例:
1.刪除資料卷
docker volume rm 資料卷名
2.刪除容器的同時刪除資料卷
docker rm -v 容器名/容器ID
3.刪除無主的資料卷
docker volume prune

七、資料卷備份方法

docker run --volumes-from [container name] -v $(pwd):/backup ubuntu
tar cvf /backup/backup.tar [container data volume]

八、資料卷還原方法

docker run --volumes-from [container name] -v $(pwd):/backup ubuntu
tar xvf /backup/backup.tar [container data volume]