欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker 教程之?dāng)?shù)據(jù)管理詳細(xì)介紹

 更新時間:2017年01月23日 11:16:09   投稿:lqh  
這篇文章主要介紹了Docker 教程之?dāng)?shù)據(jù)管理詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下

Docker 數(shù)據(jù)管理

用戶在使用 Docker 的過程中,往往需要能查看容器內(nèi)應(yīng)用產(chǎn)生的數(shù)據(jù),或者需要把容器內(nèi)的數(shù)據(jù)進(jìn)行備份,甚至多個容器之間進(jìn)行數(shù)據(jù)的共享,這必然涉及容器的數(shù)據(jù)管理操作。容器中管理數(shù)據(jù)主要有兩種方式:數(shù)據(jù)卷(Data Volumes),數(shù)據(jù)卷容器(Data Volume Containers)。

數(shù)據(jù)卷

數(shù)據(jù)卷是一個可供容器使用的特殊目錄,它繞過文件系統(tǒng),可以提供很多有用的特性:

1.    數(shù)據(jù)卷可以在容器之間共享和重用。
2.    對數(shù)據(jù)卷的更改會立即生效。
3.    對數(shù)據(jù)卷的更新不會影響鏡像。
4.    數(shù)據(jù)卷會一直存在,直到?jīng)]有容器使用。

數(shù)據(jù)卷的使用,類似于 linux 下對目錄或文件進(jìn)行 mount 操作。

在容器內(nèi)創(chuàng)建一個數(shù)據(jù)卷

在用 docker run 命令的時候,使用 -v 標(biāo)記可以在容器內(nèi)創(chuàng)建一個數(shù)據(jù)卷。多次使用 -v 標(biāo)記可以創(chuàng)建多個數(shù)據(jù)卷。

下面的例子中我們使用 myimg/webapp 鏡像創(chuàng)建一個 web 容器,并創(chuàng)建一個數(shù)據(jù)卷掛載到容器的 /webdata 目錄。

$ sudo docker run -d -P –name web -v /webdata myimg/webapp python app.py

掛載一個主機(jī)目錄作為數(shù)據(jù)卷

使用 -v 標(biāo)記也可以指定掛載一個本地的已有目錄到容器中去作為數(shù)據(jù)卷:

$ sudo docker run -d -P –name web -v /var/data:/opt/webdata myimg/webapp python app.py

上面的命令掛載主機(jī)的 /var/data 目錄到容器的 /opt/webdata 目錄。

這個功能在接下測試的時候特別方便,比如用戶可以放置一些程序或數(shù)據(jù)到本地目錄中,然后在容器中使用。另外,本地目錄的路徑必須是絕對路徑,如果目錄不存在,Docker 會自動創(chuàng)建。

Docker 掛載數(shù)據(jù)卷的默認(rèn)權(quán)限是可讀寫(rw),用戶也可以通過 ro 標(biāo)記指定為只讀:

$ sudo docker run -d -P –name web -v /var/data:/opt/webdata:ro myimg/webapp python app.py

加了 :ro 之后,容器內(nèi)掛載的數(shù)據(jù)卷內(nèi)的數(shù)據(jù)就變成只讀的了。

掛載一個本地主機(jī)文件作為數(shù)據(jù)卷

-v 標(biāo)記也可以掛載一個主機(jī)中的文件到容器中作為數(shù)據(jù)卷,但是這樣做會帶來一些問題。建議還是掛載文件所在的目錄。

數(shù)據(jù)卷容器

如果用戶需要在容器之間共享一些持續(xù)更新的數(shù)據(jù),最簡單的方式是使用數(shù)據(jù)卷容器。數(shù)據(jù)卷容器其實就是一個普通的容器,專門用它提供數(shù)據(jù)卷供其他容器掛載。下面簡單介紹其使用方法。

首先要創(chuàng)建一個數(shù)據(jù)卷容器 mydata,并在其中創(chuàng)建一個數(shù)據(jù)卷掛載到 /data 目錄。

$ sudo docker run -it -v /data –name mydata ubuntu

然后在其他容器中使用 --volumes-from 來掛載 mydata 容器中的數(shù)據(jù)卷。例如創(chuàng)建兩個容器 mycon1 和 mycon2,并從 mydata 容器掛載數(shù)據(jù)卷:

$ sudo docker run -it --volumes-from mydata –name mycon1 ubuntu
$ sudo docker run -it --volumes-from mydata –name mycon2 ubuntu

(注意,命令中沒有指定數(shù)據(jù)卷的信息,也就是說新容器中掛載數(shù)據(jù)卷的目錄和源容器中是一樣的。)

此時容器 mycon1 和 mycon2 都掛載同一個數(shù)據(jù)卷到相同的目錄 /data。三個容器任何一個在該目錄下寫入數(shù)據(jù)其他容器都能看到。

可以多次使用 --volumes-from 參數(shù)來從多個容器掛載多個數(shù)據(jù)卷。還可以從其他已經(jīng)掛載了容器的容器來掛載數(shù)據(jù)卷。并且使用 --volumes-from 參數(shù)所掛載數(shù)據(jù)卷的容器自身并不需要保持在運(yùn)行狀態(tài)。

但刪除掛載了數(shù)據(jù)卷的容器時,數(shù)據(jù)卷并不會被自動刪除。如果要刪除一個數(shù)據(jù)卷,必須在刪除最后一個還掛載著它的容器時顯式的使用 docker rm -v 命令來指定同時刪除關(guān)聯(lián)的容器。

使用數(shù)據(jù)卷容器可以讓用戶在容器之間自由的升級和移動數(shù)據(jù)卷,下面會進(jìn)行詳細(xì)的介紹。

利用數(shù)據(jù)卷容器遷移數(shù)據(jù)

可以利用數(shù)據(jù)卷容器對其中的數(shù)據(jù)卷進(jìn)行備份、恢復(fù),以實現(xiàn)數(shù)據(jù)的遷移。

備份

使用下面的命令來備份 mydata 數(shù)據(jù)卷容器內(nèi)的數(shù)據(jù)卷:

$ sudo docker run --volumes-from mydata -v $(pwd):/backup –name worker ubuntu tar cvf /backup/backup.tar /data

這個命令首先利用 Ubuntu 鏡像創(chuàng)建了一個容器 worker。又使用 --volumes-from mydata 參數(shù)來讓 worker 容器掛載 mydata 容器的數(shù)據(jù)卷。接下來使用 -v $(pwd):/backup 參數(shù)來掛載本地的當(dāng)前目錄到 worker 容器的 /backup 目錄。

在 worker 容器啟動后,使用了 tar cvf /backup/backup.tar /data 命令來將 /data 下內(nèi)容備份為容器內(nèi)的 /backup/backup.tar,即宿主主機(jī)的當(dāng)前目錄下的backup.tar。

恢復(fù)

如果要恢復(fù)數(shù)據(jù)到一個容器,可以按照下面的操作。首先創(chuàng)建一個帶有數(shù)據(jù)卷的容器 mydata2:

$ sudo docker run -v /data –name mydata2 ubuntu /bin/bash

然后創(chuàng)建另一個新的容器,掛載 mydata2 的數(shù)據(jù)卷,并使用 tar 解壓縮備份文件到所掛載的容器卷中:

$ sudo docker run --volumes-from mydata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 使用docker搭建go環(huán)境的簡單步驟

    使用docker搭建go環(huán)境的簡單步驟

    最近公司里面的項目用到了Docker,正好準(zhǔn)備學(xué)習(xí)下Golang,所以就學(xué)習(xí)Golang順便也學(xué)習(xí)下Docker怎么用的,剛好從頭開始配置下環(huán)境,這篇文章主要給大家介紹了關(guān)于使用docker搭建go環(huán)境的簡單步驟,需要的朋友可以參考下
    2023-10-10
  • 使用docker?部署mysql突然連接不上的問題及解決方法

    使用docker?部署mysql突然連接不上的問題及解決方法

    這篇文章主要介紹了使用docker?部署mysql,突然連接不上,要解決這個問題需要找到根本原因,對癥治療就好,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Docker在Windows環(huán)境的搭建和使用詳解

    Docker在Windows環(huán)境的搭建和使用詳解

    這篇文章主要介紹了Docker在Windows環(huán)境的搭建和使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Docker Swarm集群管理的使用及原理解析

    Docker Swarm集群管理的使用及原理解析

    這篇文章主要介紹了Docker Swarm集群管理的使用及原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Docker安裝mysql超詳細(xì)步驟記錄

    Docker安裝mysql超詳細(xì)步驟記錄

    mysql大家可能習(xí)慣是二進(jìn)制安裝的,現(xiàn)在容器化發(fā)展迅速,也有很多公司是用docker安裝的,下面這篇文章主要給大家介紹了關(guān)于在Docker安裝mysql的超詳細(xì)步驟,需要的朋友可以參考下
    2022-07-07
  • Docker容器通過獨立IP暴露給局域網(wǎng)的方法

    Docker容器通過獨立IP暴露給局域網(wǎng)的方法

    這篇文章主要介紹了Docker容器通過獨立IP暴露給局域網(wǎng)的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-04-04
  • docker rm -f 容器id 無效的問題解決

    docker rm -f 容器id 無效的問題解決

    當(dāng)遇到“Error response from daemon: cannot stop container: d208b8055fd0: permission denied”錯誤,表示缺乏停止Docker容器的權(quán)限,本文就來介紹一下如何解決,感興趣的可以了解一下
    2024-09-09
  • 給debian的docker容器添加crontab定時任務(wù)

    給debian的docker容器添加crontab定時任務(wù)

    這篇文章主要介紹了給debian的docker容器添加crontab定時任務(wù)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Docker中的數(shù)據(jù)存放位置

    Docker中的數(shù)據(jù)存放位置

    這篇文章主要介紹了Docker中的數(shù)據(jù)存放位置,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker搭建tomcat運(yùn)行環(huán)境的實現(xiàn)步驟

    docker搭建tomcat運(yùn)行環(huán)境的實現(xiàn)步驟

    很多時候我們測試web系統(tǒng)需要一個tomcat運(yùn)行環(huán)境,這時docker就派上用場了,本篇文章主要介紹了docker搭建tomcat運(yùn)行環(huán)境的實現(xiàn)步驟,感興趣的可以了解一下
    2017-01-01

最新評論