Docker: 不要使用 Docker 綁定掛載
此文件屬於卷指南的一部分。請在此處查看完整指南:如何使用 Docker 卷來持久化您的容器數據。
歡迎瀏覽 Stackhero 文件
Stackhero 提供即用型 Docker cloud CaaS (Containers as a Service) 平台,專為快速及可靠的 container 部署而設:
- 只需一條
docker-compose up指令即可部署到生產環境。無需額外設定:直接啟動您的 containers。- 可自訂您的網域名稱,並自動以 HTTPS 保護(例如:https://api.your-company.com、https://www.your-company.com 或 https://backoffice.your-company.com)。
- 享有高效能及強大安全性的專屬私有基礎設施。
- 一鍵套用更新,簡化維護工作,減少管理負擔。
您的 containers 約五分鐘內即可投入生產運作。Stackhero 會為您管理基礎設施、更新及安全,讓您專注於應用程式開發。了解更多 Docker CaaS cloud hosting 的詳情。
不要在 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