91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker管理containers的數據的方法

發布時間:2021-08-06 10:03:43 來源:億速云 閱讀:155 作者:chen 欄目:云計算

本篇內容主要講解“Docker管理containers的數據的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Docker管理containers的數據的方法”吧!

對于Docker來說,containers是通過如下兩種方式管理數據:

  1. Data volumes

  2. Data volume containers

Data volumes

一個數據卷是指container中的一個特殊目錄,具有以下特點:

  1. 初始化:在創建container時進行初始化。若container所屬image在數據卷的掛載點有數據,那么這些數據則是在初始化時拷貝到數據卷。

  2. Container之間可以共享數據卷,數據卷也可被重用。

  3. 數據卷中的數據修改是立現的,即一旦被修改,數據卷掛載到的containers都實時可見。

  4. 在更新image時,不會更新數據卷中的數據變化。

  5. 即使刪除container,其數據卷也不會被刪除。

Add a data volume

在執行命令docker create或者docker run時加入參數-v即可為一個container添加一個數據卷,可以多次使用-v以添加多個數據卷。簡單示例如下:

docker run -d -P --name web -v /webapp training/webapp python app.py

上述命令會在container的/webapp創建掛載點。

如果想要知道/webapp在主機上對應的目錄,可執行:

docker inspect web

結果如下:

...
"Volumes": {
  "/webapp": "/var/lib/docker/vfs/dir/b0518f7a863879aa391da6e1d0c8455db1b0d7d6f716f49463952ebd558bbe1b"
},
"VolumesRW": {
 "/webapp": true
}
...

“Volumes”是/webapp的主機目錄。”VolumesRW”表示該數據卷可被讀寫。

我們發現/webapp的主機目錄具有一個隨機產生的名字,并不友好,所以,在創建container時,可指定將主機上的某目錄作為數據卷掛載到container的指定目錄下,只需要在使用-v參數時指定一下:

docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py

如上,將主機的/src/webapp掛載到container的/opt/webapp,如果/src/webapp不存在,會被創建。該數據卷默認可被讀寫,若需要限制其為可讀,執行如下:

docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py

當然,也可以掛載一個單獨的文件:

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash

如上,在container中使用的命令都會記錄下來,當離開container后,仍舊可以查看歷史記錄。

Creating and mounting a data volume container

如果需要在containers之間共享持久化數據,或者使用非持久化containers的持久化數據,可以考慮創建數據卷container,并將其中數據掛載到其他containers。

創建數據卷containers如下:

docker create -v /data --name dbdata training/postgres /bin/true

Container dbdata并不執行任何應用。

可以使用參數–volumes-from將/data掛載到別的containers中:

docker run -d --volumes-from dbdata --name db1 training/postgres
docker run -d --volumes-from dbdata --name db2 training/postgres

db1和db2共享數據。

數據卷掛載具有傳遞性,可通過db1或者db2將/data掛載到另一個container:

docker run -d --name db3 --volumes-from db1 training/postgres

如果此時刪除dbdata、db1、db2,數據卷是不會被刪除的,一定要在刪除數據卷掛載的最后一個container時將其刪除,如:

docker rm -v db3

到此,相信大家對“Docker管理containers的數據的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高尔夫| 邯郸县| 观塘区| 定西市| 冷水江市| 洛川县| 玉林市| 五河县| 宣武区| 广安市| 当阳市| 金门县| 罗源县| 康乐县| 宁津县| 扎囊县| 阿城市| 雷波县| 清苑县| 东明县| 高邑县| 泰宁县| 湘乡市| 云南省| 修文县| 神池县| 四子王旗| 宁阳县| 且末县| 扎鲁特旗| 阜南县| 汪清县| 通州市| 成安县| 屏南县| 台州市| 庆安县| 宜昌市| 永丰县| 都江堰市| 舒城县|