在 docker 容器中,文件通常不會(huì)持久化,需要采用方法來(lái)持久化文件:使用數(shù)據(jù)卷,在容器之間共享文件系統(tǒng),容器停止后文件保留。使用 docker 卷,由 docker 管理,類(lèi)似數(shù)據(jù)卷。使用本地存儲(chǔ),僅供臨時(shí)存儲(chǔ),容器重啟后數(shù)據(jù)丟失。使用持久性存儲(chǔ),由第三方存儲(chǔ)提供商提供,持久化大型數(shù)據(jù)集。
如何在 Docker 容器中持久化文件
在 Docker 容器中,文件通常不會(huì)持久化,即容器重新啟動(dòng)后,文件將被刪除。為了持久化文件,有以下幾種方法:
1. 使用數(shù)據(jù)卷
數(shù)據(jù)卷是一種可用于在容器之間共享文件系統(tǒng)的持久化存儲(chǔ)。當(dāng)容器停止運(yùn)行時(shí),數(shù)據(jù)卷中的文件將被保留。要使用數(shù)據(jù)卷,可以在創(chuàng)建或運(yùn)行容器時(shí)使用 -v 選項(xiàng)將宿主機(jī)上的目錄掛載到容器中的目錄:
<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15865.html" target="_blank">docker</a> run -v /host-path:/container-path image-name
登錄后復(fù)制
2. 使用 Docker 卷
Docker 卷類(lèi)似于數(shù)據(jù)卷,但它們由 Docker 管理,而不是由宿主機(jī)文件系統(tǒng)管理。創(chuàng)建 Docker 卷并將其掛載到容器中:
docker volume create volume-name docker run -v volume-name:/container-path image-name
登錄后復(fù)制
3. 使用本地存儲(chǔ)
對(duì)于只需要臨時(shí)存儲(chǔ)數(shù)據(jù)的容器,可以使用本地存儲(chǔ)。本地存儲(chǔ)將數(shù)據(jù)保存在容器的文件系統(tǒng)中,但它不會(huì)持久化,即容器重新啟動(dòng)后數(shù)據(jù)將丟失。
4. 使用持久性存儲(chǔ)
對(duì)于需要持久化存儲(chǔ)大型數(shù)據(jù)集或重要數(shù)據(jù)的容器,可以使用持久性存儲(chǔ)。持久性存儲(chǔ)由第三方存儲(chǔ)提供商(如 Amazon EBS、Azure Blob Storage 或 Google Cloud Storage)提供。要使用持久性存儲(chǔ),需要?jiǎng)?chuàng)建一個(gè)持久性存儲(chǔ)卷并將其掛載到容器中。
選擇合適的方法取決于具體用例和數(shù)據(jù)持久性的要求。