Docker和DevOps:13.Docker的持久化存儲和數據共享

一、基本介紹

1.鏡像Image和容器Container

在這裏插入圖片描述
插入的數據存放在容器層,一旦將容器刪除,插入的數據也會隨着被刪除,造成數據丟失。

2.Docker持久化方案
  • 基於本地文件系統的Volume(文件集)
    可以在執行docker run時,通過-v參數將主機的目錄作爲容器的數據卷。
  • 基於第三方的文件集,例如NAS。不需要了解。
3.基於本地文件系統的Volume的類型
  • Data Volume
    docker管理的文件集,由docker自動創建。
  • Bind Mounting
    綁定掛載的文件集,具體掛載位置可以由用戶指定。

二、Data Volume

1.基本介紹
  • 在dokerfile中可以使用volume參數指定一個路徑爲待映射路徑,docker會對這個待映射路徑進行管理。
  • 當容器創建時,docker會爲該容器在/var/lib/docker/volumes/目錄下創建一個volume,名字默認爲一串字符xxxxxx。
  • 存儲到容器中的待映射路徑中的內容都會被轉存到/var/lib/docker/volumes/xxxxxx/下
    在這裏插入圖片描述
2.以mysql爲例查看docker自動創建的volume
(1)查看mysql的dockerfile

docker hub中的mysql鏡像的dockerfile中有一個VOLUME配置項,指定了mysql服務的默認存儲路徑(/var/lib/mysql)爲volumn,這個容器中的該路徑就會交由docker管理,存到該路徑下的內容就會被存儲到docker自動創建的volume中。
在這裏插入圖片描述

(2)創建mysql容器
docker run -d --name=mysql_1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:latest

在這裏插入圖片描述

(3)查看docker自動創建的volume
docker volume ls

在這裏插入圖片描述

(4)查看volume的詳細信息
docker volume inspect [volume名字]

在這裏插入圖片描述

(4)再創建一個mysql容器並查看volume

在這裏插入圖片描述

(5)清理容器
docker stop mysql_1 mysql_2
docker rm mysql_1 mysql_2
--刪除容器並不會刪除volumn,所以需要手動刪除
docker volume rm [volume名稱]

在這裏插入圖片描述

2.友好的volume名稱

上面可以發現docker自動創建的volumn名稱並不是特別友好,我們可以指定volumn名稱。

(1)

三、:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章