當程序在容器中運行時,
需要與其他容器中的程序或者容器外部的程序進行文件讀寫操作時,
就需要進行數據的交換;
容器內部的文件系統,
是一個臨時層,
當容器停止運行並被刪除時,
這個臨時層就會被一同丟棄;
為了達到從外部獲取文件並且持久化存儲的目的,
Docker提供了數據卷;
數據卷是一個從外部掛載在容器內文件系統的目錄,
脫離了容器的生命周期而獨立存在,
當容器停止運行並被刪除時,
數據卷不會受到影響,
會依然存在於Docker宿主機之中!
docker run -d --name test_1 -v /yjl nginx
運行test_1容器,並在容器內創建一個路徑為/yjl的數據卷
docker run -d --name test_2 -v /root/yjl:/data_2 nginx
運行test_2容器,加載宿主機的/root/yjl目錄到容器的/data_2目錄作為數據卷
docker volume create --name data_3
使用docker volume命令創建一個別名為data_3的數據卷
docker volume inspect data_3
查看數據卷信息
請注意此目錄是宿主機的數據卷,
而不是容器的數據卷。
docker run -d --name test_3 -v data_3:/data_3 nginx
運行test_3容器,掛載data_3數據卷到容器的/data_3目錄作為數據卷
docker volume list
查看宿主機中的數據卷
docker volume rm <參數:數據卷的VOLUME NAME>
刪除數據卷
請注意如果數據卷沒有取別名,
則名稱是64位的全名,
不支持模糊匹配,
所以在創建數據卷時最好取別名。
docker rm -v <參數:容器名稱>
隨容器刪除數據卷,
只針對隨容器創建時而創建的數據卷。