需要搞清楚乙個概念的是,docker的容器設計理念是可以即開即用,用完可以隨意刪除,而新建容器是根據映象進行渲染,容器的修改是不會影響到映象,但是有時候容器裡面執行的產生的資料(如mysql)或者配置項(如nginx的nginx.conf)我們又需要儲存起來的,因而我們需要對容器某些修改的資料進行掛載。
下面介紹三種持久化資料的方式
docker run -v 宿主目錄:容器掛載的目錄 映象
這時候docker會自動在對應的目錄下進行掛載,值得注意的是,如果容器裡面沒有宿主機對應的目錄,那麼容器會自動建立對應的目錄。如果沒有指定宿主目錄,那麼會自動在/var/lib/docker/volumes/下進行掛載。
可以選擇建立docker容器,來作為共享資料的容器。
# 建立資料容器
docker create -v 宿主目錄:容器目錄 --name 資料容器名字 基於的環境
# 掛載
docker run --volumes-from 資料容器名字 映象
適用於映象裡的某些執行環境的修改,如php-fpm裡面還需要多安裝乙個php-pdo之類的東西。
# 儲存更改並生成為乙個新的image檔案
$ docker commit -m "mess" 映象id 映象名字
# 檢視全部volume
docker volume ls
# 刪除對應的volume
docker volume rm volumeid
docker持久化資料
1.持久化資料的兩種方式volume和bind mount docker容器在執行的時候會產生資料,為了不讓這些資料隨著容器的刪除而刪除,docker支援資料持久化。docker資料持久化主要有兩種方式 volume和bind mount。使用volume資料將持久化在docker管理的volume...
docker 資料持久化
2.一開始執行dicker命令安裝了mysql5.7 docker run name mysql v pwd mysql var lib mysql p 3306 3306 e mysql root password hogwarts d mysql 5.7 說明將檔案掛載到了 var lib資料夾...
動手學Docker 第四彈 Docker持久化儲存
完整專案請檢視github 鏈結 知道現在我們所有操作都是基於容器的,也就是我們的所有資料的生命週期是和容器一樣的,如果容器被刪除了,那麼我們的所有資料也就沒有了,這肯定不是我們想要看到的,我們想要一些資料儘管容器不存在了,但仍然可以儲存,所以就需要docker的持久化技術。目前docker可以通過...