Docker是一種輕量級的虛擬化技術(shù),可以實(shí)現(xiàn)在不同的運(yùn)行環(huán)境下部署應(yīng)用程序。而在Docker中,存儲是一個非常重要的問題。
Docker提供了兩種存儲方式,分別是Volumes和Bind Mounts,下面我們來具體看一下它們的區(qū)別:
Volumes: - 可以在不同的容器之間共享數(shù)據(jù) - Volumes是在Docker主機(jī)上創(chuàng)建的,可以獨(dú)立于容器存在 - Volumes的數(shù)據(jù)是安全的,可以通過卷的名稱進(jìn)行訪問 - 可以使用docker volume命令來管理卷
Bind Mounts: - 可以將主機(jī)上的目錄/文件掛載到容器中 - 不支持在不同的容器之間共享數(shù)據(jù) - 可以實(shí)現(xiàn)容器和主機(jī)間的數(shù)據(jù)共享
下面我們以存儲菜鳥教程為例,來演示一下使用Volumes的方法:
# 創(chuàng)建一個名為"tutorial"的volume $ docker volume create tutorial # 運(yùn)行一個容器 $ docker run -it -v tutorial:/app ubuntu # 在容器中安裝wget工具 $ apt update $ apt install wget # 下載菜鳥教程并存儲到/tutorial目錄下 $ wget -P /tutorial https://www.runoob.com/wp-content/uploads/2020/07/html-tutorial.pdf # 退出容器 $ exit # 查看volume中的數(shù)據(jù) $ docker run -v tutorial:/app --rm ubuntu ls /app
這樣,我們就可以通過docker volume命令來管理這個volume了。