Docker-Compose

docker-compose 卷未安裝到主機目錄

  • October 27, 2016

我正在使用 docker-compose 進行部署,有 2 個docker-compose.yml設置,我在本地建構映像並從伺服器上的 docker hub 拉取。

本地:

app:
 build: .
 volumes:
   - "./tmp/volume:/volume"

在伺服器上:

app:
 image: username/repo:tag
 volumes:
   - "/data/volume:/volume"

在本地,我的捲很好地安裝到指定的目錄,應用程序創建的文件保存在容器外。但是,在部署伺服器上,這不會發生。

然而,文件通過部署創建和保存的,即使我的部署腳本執行docker-compose down -v可能會刪除容器上的命名和匿名卷。

我確定我做錯了什麼,但我看不出是什麼。

這裡的伺服器是 AWS 上的一個 EC2 節點,結果證明這是在啟動 docker 守護程序後掛載 EBS 卷的問題。

本質上,docker在卷被掛載到之前就期望文件系統/data,並且文件實際上被寫入了陰影/data目錄,但由於掛載而不可見。這讓我措手不及,主要是因為在最初創建容器時,安裝發生在部署之前很久。

因此,如果您在 EC2 節點上掛載 EBS 卷,如果您希望容器能夠訪問這些卷,請重新啟動 docker 服務。

引用自:https://serverfault.com/questions/810242