Dockerfile指令詳解--VOLUME 指令
阿新 • • 發佈:2018-11-07
格式為:
VOLUME ["<路徑1>", "<路徑2>"...] VOLUME <路徑>
之前我們說過,容器執行時應該儘量保持容器儲存層不發生寫操作,對於資料庫類需要儲存動態資料的應用,其資料庫檔案應該保存於卷(volume)中,後面的章節我們會進一步介紹 Docker 卷的概念。
為了防止執行時使用者忘記將動態檔案所儲存目錄掛載為卷,在 Dockerfile 中,我們可以事先指定某些目錄掛載為匿名卷,這樣在執行時如果使用者不指定掛載,其應用也可以正常執行,不會向容器儲存層寫入大量資料。
VOLUME /data
這裡的 /data 目錄就會在執行時自動掛載為匿名卷
docker run -d -v mydata:/data xxxx
在這行命令中,就使用了 mydata 這個命名卷掛載到了 /data 這個位置,替代了 Dockerfile 中定義的匿名卷的掛載配置。
使用 dokcer inspect mycontainer 可以檢視到具體的掛載情況:
如上圖所示,容器中的"/home/xiaoban/logs/eureka-server/log" 被自動匿名掛載到了本地機器上的 /var/lib/docker/volumes/***