Docker資料管理
Docker在容器中管理資料主要有兩種方式:
- 資料卷
-
掛載主機目錄
資料卷
是一個可供一個或多個容器使用的特殊容器,它繞過UFS,提供一下特性:
- 可以在容器之間共享和重用
- 對資料卷的修改會立馬生效
- 對資料卷的更新,不會影響映象
- 預設會一直存在,及時容器被刪除
注:資料卷的使用,類似於Linux對目錄或檔案進行mount,映象中的被指定為掛載點的目錄中的檔案會被隱藏掉,顯示的是掛載的資料卷。資料卷相關指令
-
建立資料卷
docker volume create [OPTIONS] [VOLUME] Options: -d, --driver string Specify volume driver name (default "local") --label list Set metadata for a volume -o, --opt map Set driver specific options (default map[]) # e.g docker volume create white-vol
-
檢視所有的資料卷
docker volume ls DRIVER VOLUME NAME local white-vol
- 檢視指定資料卷的詳細資訊
docker volume inspect white-vol [ { "CreatedAt": "2018-08-29T17:45:05+08:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/white-vol/_data", "Name": "white-vol", "Options": {}, "Scope": "local" } ]
-
啟動一個掛載資料卷的容器
docker run -d -p 80:80 --name web -v white-vol:/usr/share/nginx/html nginx # 進入資料卷目錄 cd /var/lib/docker/volumes/white-vol/_data ls 總用量 8 -rw-r--r--. 1 root root 537 7月 24 21:02 50x.html -rw-r--r--. 1 root root 598 8月 29 18:53 index.html # 容器中的檔案已經掛載到了宿主機的資料卷中,在當前目錄中新增html或者修改html,在容器中能夠及時更新 # 也可以透過 docker inspect web 命令檢視容器的詳情中 Mounts塊,檢視資料掛載情況 docker inspect web "Mounts": [ { "Type": "volume", # 資料卷為volume,直接掛載本機檔案時為bind "Name": "white-vol", "Source": "/var/lib/docker/volumes/white-vol/_data", "Destination": "/usr/share/nginx/html", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" } ],
- 刪除資料卷
docker volume rm [OPTIONS] VOLUME [VOLUME...]
- 清除所有無主的資料卷
docker volume prune
掛載主機目錄
docker run -d -p 82:80 -v /root/app/webapp:/usr/share/nginx/html nginx
掛載命令 -v 可以使用 --mount 代替;區別在於使用-v命令當前資料卷或者檔案目錄不存在時,Docker會自動建立資料卷或者檔案目錄,--mount則會直接報錯;
Docker 掛載主機目錄的預設許可權是 讀寫 ,使用者也可以透過增加 readonly 指定為 只讀 。
資料卷和掛載目錄區別:
卷 (Docker Volume) 是受控儲存,是由 Docker 引擎進行管理維護的。因此使用卷,你可以不必處理 uid、SELinux 等各種許可權問題,Docker 引擎在建立卷時會自動新增安全規則,以及根據掛載點調整許可權。並且可以統一列表、新增、刪除。另外,除了本地卷外,還支援網路卷、分散式卷。
而掛載目錄那就沒人管了,屬於使用者自行維護。你就必須手動處理所有許可權問題。特別是在 CentOS 上,很多人碰到 Permission Denied,就是因為沒有使用卷,而是掛載目錄,而且還對 SELinux 安全許可權一無所知導致。
參看資料
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2618/viewspace-2812919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【docker】docker資料管理Docker
- Docker管理應用資料Docker
- Docker 基礎 : 資料管理Docker
- docker之資料卷管理Docker
- 【Docker】第五篇 Docker 資料管理Docker
- Docker資料管理(資料卷+資料卷容器)Docker
- Docker筆記(八):資料管理Docker筆記
- Docker資料卷Docker
- 【實戰】Docker容器資源管理Docker
- HGDBV5.6.5資料庫Docker映象安裝啟動管理資料庫Docker
- docker學習筆記(4)- 應用資料管理(容器外)Docker筆記
- docker 文件資料整理Docker
- Docker資料持久化Docker持久化
- Docker 基礎知識 - 使用卷(volume)管理應用程式資料Docker
- [Docker 系列]docker 學習 五,容器資料卷Docker
- [Docker 系列]docker 學習六,資料卷容器Docker
- Docker系列教程14-Docker資料持久化Docker持久化
- Docker進階-資源管理Swarm+PortainerDockerSwarmAI
- Docker(六)容器資料卷Docker
- docker系列(四):資料卷Docker
- Docker容器的資料卷Docker
- Docker之 資料持久化Docker持久化
- Docker容器資料卷、DockerfileDocker
- docker - [10] 容器資料卷Docker
- Docker 容器資料卷 三Docker
- Docker安全管理Docker
- Docker基本管理Docker
- 資料管理
- MySQL資料庫資料管理MySql資料庫
- 一文說清資料管理、資料治理和資料資產管理
- Docker入門-資料掛載Docker
- docker配置前端和資料庫Docker前端資料庫
- docker資料卷(Data Volumes)Docker
- STF,docker學習資料整理Docker
- docker建立mysql、nginx資料卷DockerMySqlNginx
- Docker 基礎知識 - 使用 tmpfs 掛載(tmpfs mounts)管理應用程式資料Docker
- Docker——映象管理Docker
- Docker的容器管理Docker