Docker: 不要使用 Docker 綁定掛載

此文件屬於指南的一部分。請在此處查看完整指南:如何使用 Docker 卷來持久化您的容器數據

👋 歡迎來到 Stackhero 文件!

Stackhero 提供一個即用型的 Docker cloud CaaS (Containers as a Service) 解決方案,帶來多種好處,包括:

  • 只需 docker-compose up 即可 輕鬆將 您的容器 部署到生產環境
  • 可自訂的域名,並使用 HTTPS 保護(例如,https://api.your-company.comhttps://www.your-company.comhttps://backoffice.your-company.com)。
  • 專用的私人 VM 提供的最佳 性能 和強大的 安全性
  • 只需點擊一下即可輕鬆 更新

節省時間簡化您的生活:只需 5 分鐘 即可嘗試 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