#Docker:存儲
###存儲
```
// 查看鏡像或容器的底層信息
docker inspect centos
```
```
docker run -i -t --name test1 centos bash
echo 'hello www.baidu.com' > hello.txt
cat hello.txt // 會輸出文件里面的內容
exit
```
```
docker run -i -t --name test2 centos bash
cat hello.txt // 會提示 cat: hello.txt: No such file or directory
```
雖然test1還有test2都是基于centos這個鏡像創建的,不過它們都擁有一個各自的可以讀寫的一個文件層,新創建的文件或者被修改的已有的文件都會被放到這個文件層里面,不會影響到鏡像本身或者其它的使用這個鏡像創建的容器
```
docker rm test1 test2
```
刪除容器的時候,這些在容器層上面的文件也會被刪除掉,如果有一些數據想要一直保存的話,比如說:web服務器里面的日志,數據庫管理系統里面的數據,我們可以去為容器創建一個數據盤,然后把這些要常期保存的數據放到這些數據盤上面
###指定主機目錄作為數據盤
```
docker run -v /c/Users/zhuli/Desktop/practise:/mnt -i -t --name=db centos bash
cd /mnt
touch data1
exit
docker rm db
切換到/c/Users/zhuli/Desktop/practise目錄下,存在data1這個文件
```
###數據容器
我們可以去創建一個數據容器,然后讓其它的容器可以去使用這個數據容器來作為它們的數據盤
```
docker create -v /mnt --name dbcenter centos
docker run --volumes-from dbcenter --name db1 -i -t centos bash
cd /mnt
touch data1
ls
exit
docker run --volumes-from dbcenter --name db2 -i -t centos bash
cd /mnt
ls
```

###管理數據盤
```
// 查看在主機上創建的數據盤
docker volume ls
// 查看已經沒有容器使用的數據盤
docker volume ls -f dangling=true
// 刪除已經沒有容器使用的數據盤
docker volume rm ab7f997e4db67f635bd725168e1c6b42754a005b3eea5c0611d9c37f9b4ef143
// 查看數據盤的底層信息
docker volume inspect 187856df2edfce79bde7f36d82500d789faed20bc5bc69194d5ebee79c44e06c
// 如果容器(數據容器)正在運行中,上面的命令會報錯,需要加-f選項來進行強制刪除
docker rm -vf db1 db2
// 刪除容器(數據容器)并刪除它的數據盤
docker rm -v dbcenter
// 查看數據盤是否已經被刪除
docker volume ls
```