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

利用Volume在主機和Docker容器文件傳輸?shù)姆椒?/h1>
 更新時間:2019年03月01日 11:51:48   作者:繁城落葉  
這篇文章主要介紹了利用Volume在主機和Docker容器文件傳輸?shù)姆椒?,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

之前寫過一篇關(guān)于Docker容器和本機之間的文件傳輸。的文章,但是此方法相對比較繁瑣一些,在查看了官方關(guān)于數(shù)據(jù)管理的文檔之后發(fā)現(xiàn)利用volume來實現(xiàn)主機和容器的文件傳輸效率更高一點,其實也就是將本地的目錄進行掛載到容器上,官方一共有三種方法:Manage data in Docker,

這里只介紹使用volume的操作:Use volumes

1.使用Volume在主機和容器之間傳輸文件。

在官方文檔中可以看到使用如下命令即可創(chuàng)建一個volume:

Create a volume:

$ docker volume create my-vol

注意這個命令不是所有的docker版本都可以運行的:

The client and daemon API must both be at least 1.21 to use this command. Use the docker version command on the client to check your client and daemon API versions.

創(chuàng)建完成之后可以查看詳細信息:

$ docker volume inspect my-vol

注意這個Mountpoint所對應(yīng)的目錄就是我們用來主機和容器進行文件傳輸?shù)哪夸洝?/p>

然后在使用run啟動一個容器的時候就可以使用該volume:

可以看到通過-v命令將剛才創(chuàng)建的數(shù)據(jù)卷掛載到容器中的hostdata目錄下了,這時候我們在容器中給hostdata目錄下添加文件的時候,在主機的的/var/lib/docker/volumes/my-vol/_data中就可以看到了,同理在主機的該目錄中添加文件,在容器的hostdata中也可以看到。

我將nginx這個文件復(fù)制到主機中用來交換的目錄下,進入容器之后在hostdata的目錄下也可以查看:

同樣的在容器中將文件拷貝到hostdata目錄下中,在主機的/var/lib/docker/volumes/my-vol/_data也能夠使用查看。

在這里我在容器中創(chuàng)建一個文件testfile并向其中寫入:This is container write!,然后回到主機進行查看,并在主機中使用vim向其中添加:“This is host write!”,并返回容器中進行查看。

2.使用數(shù)據(jù)卷容器。

我在有些地方看到有人使用數(shù)據(jù)卷容器來實現(xiàn)多個容器之間的數(shù)據(jù)共享,其過程是這樣子的:

1.先創(chuàng)建一個數(shù)據(jù)卷容器dbdata,并在其中創(chuàng)建一個數(shù)據(jù)卷掛載到/bdata:

可以通過docker volume ls查看生成了一個隨機名稱的volume。

2.然后,可以在其他容器中使用–volumes-from來掛載dbdata容器中的數(shù)據(jù)卷,例如創(chuàng)建db1和db2兩個容器,并從dbdata容器掛載數(shù)據(jù)卷:

3.然后此時在三個容器中任何一方在/dbdata目錄下的寫入,其他容器中都可以看到。

在圖中,在dbdata容器中創(chuàng)建testfile文件并寫入”dbdata container write!”,然后在db1容器中查看并寫入“db1 container write!”,然后在db2容器中查看并寫入“da2 container write!”,最后回到dbdata容器中查看。

4.然后還可以通過多個–volumes-from來掛載多個數(shù)據(jù)卷,然后還給出了備份和恢復(fù)的方法,網(wǎng)上一搜一大把。

3.為什么不用數(shù)據(jù)卷容器?

在看到許許多多關(guān)于數(shù)據(jù)卷容器的文章,并且都是大同小異。然后我想了想發(fā)現(xiàn)并沒有使用數(shù)據(jù)卷的必要性(或許是我想的不夠周全)。

上面提到數(shù)據(jù)卷容器用來在多個容器共享數(shù)據(jù),但是在明明可以通過掛載一個相同的本地目錄就能實現(xiàn)該方法。比如說在第一步中創(chuàng)建的my-vol數(shù)據(jù)卷,我可以將其同時掛載到db3和db4容器中。

在圖中,我將my-vol數(shù)據(jù)卷掛載到了db3和db4中,然后在其中能夠找到之前的數(shù)據(jù)文件,并且在db4容器中對testfile文件進行寫入操作,在db3中容器中也可以查看。

那么也就是說,我同樣的可以通過掛載一個數(shù)據(jù)卷就可以實現(xiàn)多個容器中的數(shù)據(jù)共享,并且在主機的目錄中添加的文件,在所有的容器中也能夠查看。如果備份的話直接在主機本地將文件夾進行拷貝即可,豈不是更方便。

4.為什么使用數(shù)據(jù)卷容器?

但是數(shù)據(jù)卷容器還有一個作用比較不錯,那就是可以用來指定掛載本地目錄,在第一點中我們創(chuàng)建一個名為my-vol的數(shù)據(jù)卷,該數(shù)據(jù)卷在本地存放的目錄為:/var/lib/docker/volumes/my-vol/_data,可以看出這個名字很長不方便操作,可以通過數(shù)據(jù)卷容器來解決該問題。

比如我在主機上創(chuàng)建了一個專門用來存放主機和容器進行文件交互的目錄,也就是說以后我想給容器中傳輸什么文件了,我直接將文件拷貝到該目錄下即可:

我在官方文檔中并沒有發(fā)現(xiàn)使用docker volume create 創(chuàng)建數(shù)據(jù)卷時可以指定volume對應(yīng)的本地目錄的命令(或許是我看的不夠多)。

但是我就是想要用/usr/local/datadb 這個目錄該怎么辦?此刻數(shù)據(jù)卷容器的作用就出來了,可以通過創(chuàng)建一個數(shù)據(jù)卷容器,并且將該目錄掛在到數(shù)據(jù)卷容器上即可:

在圖中,我創(chuàng)建了一個所謂的數(shù)據(jù)卷容器,并且使用-v參數(shù),將剛才主機的/usr/local/datadb目錄掛載進去,然后在容器中創(chuàng)建文件testfile并寫入“HAHAHAHA”,在主機上進行查看。

然后在其他容器創(chuàng)建的時候既可以使用–volumes-from將該數(shù)據(jù)卷容器進行掛載,然后想給容器中傳文件的時候直接拷貝到/usr/local/datadb目錄下即可,反過來容器給主機傳文件直接拷貝到容器中的掛載目錄下即可。

至于備份,直接將主機/usr/local/datadb賦值一份就好了,恢復(fù)的話再次掛載就好了。

但有一個問題就是,上述所有的掛載volume操作都是使用run命令新建了一個容器,至于能不能直接給運行中的容器進行掛載,我查了半天只有一個是關(guān)于這個的,但是我也沒有考證,有興趣的可以看下:http://www.dbjr.com.cn/article/157179.htm

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker和docker-compose一鍵安裝教程(支持在線和離線)

    docker和docker-compose一鍵安裝教程(支持在線和離線)

    這篇文章主要介紹了docker和docker-compose一鍵安裝(支持在線和離線),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 清理Docker磁盤空間的幾種有效方法

    清理Docker磁盤空間的幾種有效方法

    隨著Docker的廣泛使用,管理Docker占用的磁盤空間變得越來越重要,長時間運行Docker環(huán)境,未使用的容器、鏡像、卷和網(wǎng)絡(luò)等會逐漸積累,占用大量磁盤空間,本文將介紹幾種清理Docker磁盤空間的有效方法,需要的朋友可以參考下
    2024-08-08
  • Docker容器搭建本地私有倉庫詳情

    Docker容器搭建本地私有倉庫詳情

    這篇文章主要介紹了Docker容器搭建本地私有倉庫詳情,Docker?官方提供了一個搭建私有倉庫的鏡像?registry?,運行該鏡像的容器并且對外暴露5000端口就ok了
    2022-08-08
  • 詳解Docker 數(shù)據(jù)卷管理

    詳解Docker 數(shù)據(jù)卷管理

    本篇文章主要介紹了Docker 數(shù)據(jù)卷管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • docker實現(xiàn)批量下載pull?k8s鏡像并打標簽tag、推送push至鏡像倉庫

    docker實現(xiàn)批量下載pull?k8s鏡像并打標簽tag、推送push至鏡像倉庫

    這篇文章主要介紹了docker實現(xiàn)批量下載pull?k8s鏡像并打標簽tag、推送push至鏡像倉庫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 詳解docker-compose安裝minio

    詳解docker-compose安裝minio

    這篇文章主要介紹了docker-compose安裝minio的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Docker可視化管理工具DockerUI的使用

    Docker可視化管理工具DockerUI的使用

    這篇文章主要介紹了Docker可視化管理工具DockerUI的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • docker run的--rm選項使用說明

    docker run的--rm選項使用說明

    這篇文章主要介紹了docker run的--rm選項使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docket Desktop安裝redis并設(shè)置密碼方式

    Docket Desktop安裝redis并設(shè)置密碼方式

    在DockerDesktop中安裝Redis并設(shè)置密碼的步驟包括啟動Docker、拉取Redis鏡像、創(chuàng)建并運行Redis容器設(shè)置密碼、驗證容器運行、連接并驗證密碼,以及可選的持久化數(shù)據(jù)設(shè)置
    2025-03-03
  • Armbian5.9.0安裝docker及部署可視化portainer的詳細教程

    Armbian5.9.0安裝docker及部署可視化portainer的詳細教程

    這篇文章主要介紹了Armbian5.9.0安裝docker及部署可視化portainer的詳細教程,通過?ssh?進去?Armbian?系統(tǒng)后,輸入相應(yīng)代碼,按提示輸入y,等待安裝完成即可,需要的朋友可以參考下
    2022-05-05

最新評論