您好,登錄后才能下訂單哦!
閱讀本文前,希望你已經對Volumes有了初步的了解,具體可以參考這篇文章:
Docker數據存儲之Volumes詳解
默認容器的數據的讀寫發生在容器的存儲層,當容器被刪除時其上的數據將會丟失。所以我們應該盡量保證容器存儲層不發生寫操作,為了實現數據的持久化存儲我們需要選擇一種方案來保存數據,當前有以下幾種方式:
下圖展示了這三種技術:
Bind mounts
Bind mounts模式和Volumes非常相似,不同點在于Bind mounts模式是將宿主機上的任意文件或文件夾掛載到容器,而Volumes本質上是將Docker服務管理的一塊區域(默認是/var/lib/docker/volumes下的文件夾)掛載到容器。
Bind mounts的使用和Volumes類似,也是通過-v
或--mount
參數將宿主機文件掛載容器中。下面是一個例子:
使用--mount
參數時,需要指定type=bind
:
$ docker run -d \ --name=nginxtest \ --mount type=bind,source=/usr/local/web,destination=/usr/share/nginx/html \ nginx:latest
上面的例子將宿主機上的/usr/local/web文件夾掛載到容器中的/usr/share/nginx/html文件夾。
或者使用-v
參數:
$ docker run -d \ --name=nginxtest \ -v /usr/local/web:/usr/share/nginx/html \ nginx:latest
掛載成功后,容器從/usr/share/nginx/html目錄下讀取或寫入數據,實際上都是從宿主機的 /usr/local/web目錄中讀取或寫入數據。因此Volumes或Bind mounts也可以看作是容器和宿主機共享文件的一種方式。
如果你使用Bind mounts掛載宿主機目錄到一個容器中的非空目錄,那么此容器中的非空目錄中的文件會被隱藏,容器訪問這個目錄時能夠訪問到的文件均來自于宿主機目錄。這也是Bind mounts模式和Volumes模式最大的行為上的不同。
Bind mounts使用場景
請參考這篇文章:Docker數據存儲總結
參考文章
https://docs.docker.com/storage/bind-mounts/
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。