Day17:使用Docker Volume 的功能(一) | dockerfile volume教學
之前有說明過在執行DockerContainer的時侯檔案系統會分為Image層、Init層以及可讀可寫層這三個部份,當DockerContainer刪除掉之後,存放在DockerContainer上的資料也就會跟著刪除掉,因此需要把不想要被刪除掉的資料存放在實體機器上,避免資料不見的問題。主要實作如何使用Docker的Volume功能,把資料寫入到實體機器上,主要的方式有二個方法:在執行dockerrun指令時加上-v參數,使得Container裡面的檔案路徑Mapping到實體主機的檔案路徑。在撰寫Dockerfile時,加入VOLUME指令,做到把資料存放在實體的主機上。使用這種方法需要搭配d...
之前有說明過在執行 Docker Container 的時侯檔案系統會分為 Image 層、Init 層以及可讀可寫層這三個部份,當 Docker Container 刪除掉之後,存放在 Docker Container 上的資料也就會跟著刪除掉,因此需要把不想要被刪除掉的資料存放在實體機器上,避免資料不見的問題。
主要實作如何使用 Docker 的 Volume 功能,把資料寫入到實體機器上,主要的方式有二個方法:
在執行 docker run 指令時加上 -v 參數,使得 Container 裡面的檔案路徑Mapping 到實體主機的檔案路徑。
在撰寫 Dockerfile 時,加入 VOLUME 指令,做到把資料存放在實體的主機上。使用這種方法需要搭配 docker inspect 指令,才能查詢到實體主機檔案的存放路徑在哪。(這個明天會做介紹)
Example1:在使用 docker run 指令時,指定 -v 參數,使得實體主機的資料夾路徑 Mapping 到 Container 的資料夾路徑,指令如下
$ docker run -it -v /home/user1/storage:/storage centos /bin/bash/home/user1/storage 是實體主機的資料夾路徑 Mapping 到 Container 裡面的 /storage 資料夾路徑。
執行畫面如下:
我們就會在上個畫面中的左邊視窗看到執行 docker run 指令時使用 -v參數 Mapping 到實體主機的 /home/user1/storage 的資料夾。然後在右邊視窗中的實體主機 /home/user1/storage 的資料夾建立一個 helloworld.txt 的檔案,最後再回到左邊視窗的 Container 裡面的 /storage 資料夾去看 helloworld.txt 的檔案已經存在了。
Example2:在使用 docker run 指令時,指定 -v參數,但是沒有指定實體主機的檔案路徑,指令...