Docker-Compose
docker-compose 卷未安裝到主機目錄
我正在使用 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 服務。