Docker: 卷
如何使用 Docker 卷來持久化您的容器數據
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 Docker cloud CaaS (Containers as a Service) 解決方案,帶來多種優勢,包括:
- 只需
docker-compose up即可輕鬆將您的容器部署到生產環境。- 使用 HTTPS 保護的可自訂域名(例如,https://api.your-company.com,https://www.your-company.com,https://backoffice.your-company.com)。
- 由專用私有 VM提供的最佳性能和強大的安全性。
- 只需點擊即可輕鬆更新。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Docker CaaS cloud hosting 解決方案,並將您的容器部署到生產環境!
根據設計,Docker 容器是短暫的。這意味著任何直接存儲在其中的數據將在容器被移除或替換時丟失。為了確保數據持久性,建議使用 Docker 卷。
不要使用 Docker 綁定掛載
不要在 Stackhero 上使用綁定掛載。 始終選擇 Docker 卷以防止數據丟失。
綁定掛載涉及將 Stackhero 主機 VM 的目錄鏈接到容器。但是,如果您依賴綁定掛載,更新您的 Stackhero for Docker 實例將導致以這種方式存儲的所有數據丟失。
綁定掛載通常在 docker run 命令中指定,語法如 -v /myDirectory:/mnt(注意前導 /)。在 Docker Compose 文件中,它們顯示為 volumes: /myDirectory:/mnt。禁止這些配置,否則您將丟失數據。
相反,使用 Docker 卷,這些卷由 Docker 管理,並且不引用絕對路徑。
總結:
錯誤的方法:
docker run -it -v /myDirectory:/mnt alpine
正確的方法:
docker volume create myVolume
docker run -it -v myVolume:/mnt alpine
使用 Docker Compose 文件時:
錯誤的配置:
services:
myService:
image: alpine
volumes:
- /myDirectory:/mnt
正確的配置:
services:
myService:
image: alpine
volumes:
- myVolume:/mnt
volumes:
myVolume:
name: myVolume
方便的 Docker 卷命令
這裡是管理 Docker 卷的快速參考:
-
要創建名為
myVolume的新卷,請運行:docker volume create myVolume -
列出所有現有卷:
docker volume ls -
要刪除名為
myVolume的特定卷:docker volume rm myVolume注意:刪除卷將永久刪除其中存儲的所有數據,並且無法恢復。