生活随笔
收集整理的這篇文章主要介紹了
Docker:使用本地卷和tmpfs挂载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
卷是為Docker容器保留數據的首選方法。 在本文中,將展示如何創建和使用卷來實現持久性,以及如何使用tmpfs來實現臨時存儲。 最簡單的說,創建和安裝由本地目錄支持的卷如下所示:
# make host directory
mkdir -p /data# create docker volume from host directory
sudo docker volume create --driver local --opt type=none --opt device=/data --opt o=bind --name=test# mount volume within container
sudo docker run -it --mount source=test,target=/mymount alpine:latest /bin/df -h /mymount
卷安裝 現在,讓我們看一個具體的示例,其中有一個運行Apache2的容器,該容器從其Web根傳遞內容。 在github上創建了一個名為fabianlee / alpine-voltest的項目,并將其推送到docker hub。 該Dockerfile很小,僅擴展了alpine-apache映像,然后通過在從容器提供Web內容的目錄中添加一個卷,將其進一步擴展了。
FROM fabianlee/alpine-apache:2.4.41-r0
...
VOLUME "/var/www/localhost/htdocs/"
讓已打包好的狀態運行容器,不裝入任何卷。
sudo docker run -d --rm --name alpine-voltest -p 8080:80 fabianlee/alpine-voltest:1.0.0
打開本地Docker主機上的瀏覽器端口8080。
返回的內容是放置在“ / var / www / localhost / htdocs”目錄中的容器上的默認index.html。
繼續并立即停止容器。
sudo docker stop alpine-voltest
但是,如果將本地卷安裝到該容器目錄,則可以控制該卷從該Web服務器傳遞的內容。
# create local host content
sudo mkdir -p /data/test
echo "<h1>This is mounted on the docker host at /data/test/index.html</h1>" | sudo tee /data/test/index.html# create docker volume from host directory
sudo docker volume create --driver local --opt type=none --opt device=/data/test --opt o=bind --name=test# volume details
sudo docker volume inspect test# create container that uses test volume, mounts at web root
sudo docker run -d --rm --name alpine-voltest -p 8080:80 --mount source=test,target=/var/www/localhost/htdocs fabianlee/alpine-voltest:1.0.0
現在,瀏覽器將返回以下內容,即我們放入本地docker主機文件“ /data/test/index.html”中的內容。
再次停止容器。
sudo docker stop alpine-voltest# list volumes
sudo docker volume ls
即使容器停止后,這些文件仍保留在主機上,以后的容器實例也可以重新掛載該卷。 初始數量人口 如果使用不存在的卷名啟動容器,則將創建一個新的卷。此外,如果主機目錄完全為空,則容器的內容將填充(復制到)本地主機卷目錄中。
# start container, allow it to create volume and populate
sudo docker run -d --rm --name alpine-voltest -p 8080:80 --mount source=newtest,target=/var/www/localhost/htdocs fabianlee/alpine-voltest:1.0.0# volume details
sudo docker inspect newtest | grep -i Mountpoint# get list of files in new volume (should now contain index.html)
sudo ls -l /<dockerhome/volumes/newtest/_data# stop container
sudo docker stop alpine-voltest# data still persists, but can be deleted
sudo docker system prune
sudo docker volume prune
臨時文件系統 對于只能由單個容器使用的小型臨時存儲空間,有tmpfs文件系統。它僅由主機系統上的RAM存儲支持。 創建安裝在/ tempdisk的2Mb臨時磁盤空間
創建安裝在/ tempdisk的4Mb tmpfs空間,然后將文件寫入:
總結
以上是生活随笔 為你收集整理的Docker:使用本地卷和tmpfs挂载 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。