本篇內容主要講解“Docker數據管理主要方式是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Docker數據管理主要方式是什么”吧!
在docker容器中管理數據主要有兩種方式:
數據卷(Volumes)
掛載主機目錄(Bind mounts)
數據卷
數據卷可以在容器之間共享和重用;
對數據卷的修改會立馬生效;
對數據卷的更新,不會影響到鏡像;
數據卷默認會一直存在,即使容器被刪除;
數據卷是一個可供一個或多個容器使用的特殊目錄,它繞過UFS,可以提供很多有用的特性:
注意:數據卷的使用,類似于Linux下對目錄或文件進行mount,鏡像中的被指定為掛載點的目錄中的文件會隱藏掉,能顯示看的是掛載的數據卷。
docker提供了兩種掛載方式:-v
和-mount
。對于docker新用戶 ,應該選擇--mount
參數,經驗豐富的docker使用者對-v
或者--volume
已經很熟悉了,但是還是推薦使用-mount
參數。
創建一個數據卷
docker volume create my-volume
查看所有的數據卷
docker volume ls
查看指定數據卷的信息
docker volume inspect my-volume
查看指定數據卷的信息
docker volume inspect my-volume
啟動一個掛載數據卷的容器
在用docker run
命令的時候,使用--mount
標記來將數據卷掛載到容器里。在一次docker run中可以掛載多個數據卷。
創建一個名為session-web
的容器,并加載一個數據卷到容器的/webapp
目錄
docker run --name session-web -d -p 8888:8080 \ # -v my-volume:/webapp \ --mount source=my-volume,target=/webapp \ session-web:latest
刪除數據卷
docker volume rm my-volume
數據卷是被設計用來持久化數據的,它的聲明周期獨立于容器,docker不會在容器被刪除后自動刪除數據卷,并且也不存在 垃圾回收這樣的機制來處理沒有任何容器引用的數據卷。如果需要在刪除容器的同時移除數據卷 ??梢栽趧h除容器的時候使用docker rm -v
這個命令。
無主的數據卷可能會占據很多空間,要清理請使用以下命令:
docker volume prune
掛載主機目錄
本地目錄和容器目錄的路徑必須是絕對路徑;
以前——在使用-v
參數時如果本地目錄不存在,docker會自動為你創建一個文件夾;
現在——在使用--mount
參數時,如果本地目錄不存在,docker會報錯
docker掛載主機目錄的默認權限是讀寫,用戶可以通過增加readonly指定為只讀。
使用--mount
標記可以指定掛載一個本地主機的目錄到容器中去
docker run --name session-web -d -p 8888:8080 \ # -v my-volume:/webapp \ --mount type=bind,source=/src/webapp,target=/opt/webapp \ session-web:latest
上面的命令加載主機的/src/webapp
目錄到容器的/opt/webapp
目錄。這個功能在進行測試的時候十分方便,比如用戶可以放置一些程序到本地目錄中,來查看容器是否正常工作。
注意事項
--mount
標記也可以從主機掛載單個文件到容器中
docker run --rm -it \ # -v $HOME/.bash_history:/root/.bash_history \ --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history \ ubuntu:17.10 \ bash
這樣就可以記錄在容器輸入過的命令了。
到此,相信大家對“Docker數據管理主要方式是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。