在 docker 內部以及容器之間管理資料,在容器中管理資料主要有兩種方式:
資料卷 是乙個可供乙個或多個容器使用的特殊目錄,它繞過 ufs,可以提供很多有用的特性:
注意:資料卷的使用,類似於linux下對目錄或檔案進行mount,映象中的被指定為掛載點的目錄中的檔案會隱藏掉,能顯示看的是掛載的資料卷。
# 建立乙個資料卷
docker volume create my-vol
# 檢視所有的 資料卷
docker volume ls
在主機裡使用以下命令可以檢視指定資料卷 的資訊
docker volume inspect my-vol
[ ,
"mountpoint": "/var/lib/docker/volumes/my-vol/_data",
"name": "my-vol",
"options": {},
"scope": "local"
}]
docker run -d -p \
--name web \
# 注:使用-v引數或者使用--mount引數
在主機裡使用以下命令可以檢視 web 容器的資訊,資料卷 資訊在 "mounts" key 下面
docker inspect web
"mounts": [
],
docker volume rm my-vol
資料卷是被設計用來持久化資料的,它的生命週期獨立於容器,docker 不會在容器被刪除後自動刪除資料卷,並且也不存在垃圾**這樣的機制來處理沒有任何容器引用的資料卷。
如果需要在刪除容器的同時移除資料卷。可以在刪除容器的時候使用docker rm -v
這個命令。
無主的資料卷可能會佔據很多空間,要清理請使用以下命令:docker volume prune
使用--mount
標記可以指定掛載乙個本地主機的目錄到容器中去。
docker run -d -p \
--name web \
這個功能在進行測試的時候十分方便,比如使用者可以放置一些程式到本地目錄中,來檢視容器是否正常工作。本地目錄的路徑必須是絕對路徑,以前使用-v
引數時如果本地目錄不存在 docker 會自動為你建立乙個資料夾,現在使用--mount
引數時如果本地目錄不存在,docker 會報錯。
docker 掛載主機目錄的預設許可權是 讀寫,使用者也可以通過增加 readonly 指定為 唯讀。
docker run -d -p \
--name web \
touch: new.txt: read-only file system
在主機裡使用以下命令可以檢視 web 容器的資訊,資料卷 資訊在 "mounts" key 下面
docker inspect web
"mounts": [
],
--mount
標記也可以從主機掛載單個檔案到容器中
docker run --rm -it \
# -v $home/.bash_history:/root/.bash_history \
--mount type=bind,source=$home/.bash_history,target=/root/.bash_history \
ubuntu:18.04 \
bash
root@2affd44b4667:/# history
1 ls
2 diskutil list
Docker 為容器設定資料卷的兩種方式
以安裝mysql為例 在宿主機建立與mysql容器掛載的檔案目錄 如 mysql 在該目錄下至少包含下面三個目錄 data logs conf 進入mysql目錄下,執行下面容器執行命令,繫結容器卷。執行mysql docker run p 3306 3306 name mysql v pwd co...
在Razor中輸出Html的兩種方式
razor中所有的html都會自動編碼,這樣就不需要我們手動去編碼了 安全 但在需要輸出html時就是已經轉義過的html文字了,如下所示 string thistest qubernet thistest 這樣在頁面輸出的文字就是 qubernet而不是紅色的字型了.要輸出紅色的字型,有下面常用的...
spring建立ioc容器的兩種方式
bean是乙個由spring ioc容器例項化 組裝和管理的物件。第一種方式,基於xml檔案 long countbyexample userexample example int deletebyexample userexample example int deletebyprimarykey ...