目錄
- 前言
- 1、數據卷概念
- 2、數據卷作用
- 3、配置數據卷
- 4、多容器進行數據交換
- 5、數據卷容器
- 6、數據卷小結
- 總結
前言
本文是 Docker 容器的數據卷使用的簡單教程,介紹了什么是數據卷、數據卷概念、以及如何使用數據卷等。
1、數據卷概念
數據卷簡單來講就是一個目錄,它是由Docker daemon 掛載到容器中的,因此數據卷并不屬于聯合文件系統,也就是說數據卷里面的內容不會因為容器的刪除而丟失。Docker啟動后,容器內的文件和宿主機是隔離的,如果不使用docker commit 操作提交容器為鏡像把數據保存下來,數據就會因為容器的刪除而丟失。
- 數據卷是宿主機中的一個目錄或文件
- 當容器目錄和數據卷目錄綁定后,對方的修改會立即同步
- 一個數據卷可以被多個容器同時掛載
- 一個容器也可以被掛載多個數據卷
2、數據卷作用
docker默認容器關閉后數據就沒了,如果不通過docker commit生成新的進行數據就會丟失。數據卷的作用就是將docker容器運行產生的數據持久化。
- 容器數據持久化
- 外部機器和容器間接通信
- 容器之間數據交換
3、配置數據卷
創建啟動容器時,使用 –v 參數 設置數據卷
docker run ... –v 宿主機目錄(文件):容器內目錄(文件) ... ? #docker run -it --name=c1 -v /root/data:/root/data_container couchbase/centos7-systemd /bin/bash
容器的目錄data_container
本機的目錄data
1)此時在宿主機(本機)data目錄下創建文件
touch test.txt
2)在容器查看data_container,發現同步過來了。
注意事項:
- 目錄必須是絕對路徑
- 如果目錄不存在,會自動創建
- 可以掛載多個數據卷
4、多容器進行數據交換
- 多個容器掛載同一個數據卷
- 數據卷容器
5、數據卷容器
1)創建啟動c3數據卷容器,使用 –v 參數 設置數據卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
2)創建啟動 c1 c2 容器,使用 –-volumes-from 參數 設置數據卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash ? docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
6、數據卷小結
1)數據卷概念
- 宿主機的一個目錄或文件
2)數據卷作用
- 容器數據持久化
- 客戶端和容器數據交換
- 容器間數據交換
3)數據卷容器
- 創建一個容器,掛載一個目錄,讓其他容器繼承自該容器( –volume-from )
- 通過簡單方式實現數據卷配置
總結
數據卷可以在容器之間共享和重用;對數據卷的修改會立馬生效;對數據卷的更新,不會影響到鏡像;數據卷默認會一直存在,即使容器被刪除。數據卷簡單來講就是一個目錄,它是由Docker daemon 掛載到容器中的,因此數據卷并不屬于聯合文件系統。最后,送上一句自己喜歡的話:“沒有風浪,便沒有勇敢的弄潮兒;沒有荊棘,也沒有不屈的開拓者。”。