摘要:創建數據容器常見的使用場景是使用純數據容器來持久化數據庫配置文件或者數據文件等。多次使用標記可以創建多個數據卷。查看該數據卷在主機上的存儲目錄這種應該是在主機目錄底下隨機命名的一個目錄去掛載,如果是在上,則該目錄在上面。
1、創建數據容器
常見的使用場景是使用純數據容器來持久化數據庫、配置文件或者數據文件等。官方的文檔上有詳細的解釋。例如:
$ docker run --name dbdata postgres echo "Data-only container for postgres"
該命令將會創建一個已經包含在Dockerfile里定義過Volume的postgres鏡像,運行echo命令然后退出。當我們運行docker ps命令時,echo可以幫助我們識別某鏡像的用途。我們可以用-volumes-from命令來識別其它容器的Volume:
$ docker run -d --volumes-from dbdata --name db1 postgres
使用數據容器的兩個注意點:
不要運行數據容器,這純粹是在浪費資源。
不要為了數據容器而使用“最小的鏡像”,如busybox或scratch,只使用數據庫鏡像本身就可以了。你已經擁有該鏡像,所以并不需要占用額外的空間。
授權訪問數據卷如果要授權一個容器訪問另一個容器的Volume,我們可以使用-volumes-from參數來執行docker run
備份數據卷到物理機器#sudo docker run --volumes-from dbdata -v $(pwd):/backup--name worker ubuntu tar cvf /backup/backup.tar /dbdata
首先利用ubuntu鏡像創建一個容器worker.使用—volumes-from dbdata參數來讓容器掛載dbdata容器的數據卷;使用 –v $(pwd):/backup參數來掛載本機的當前目錄到worker容器的/backup目錄
Woker容器啟動后,執行tar命令將/dbdata壓縮到/backup/backup.tar,這樣就到物理機的當前目錄了
在用docker run命令的時候,使用-v標記可以在容器內創建一個數據卷。多次使用-v標記可以創建多個數據卷。
下面使用training/webapp鏡像創建一個Web容器,并創建一個數據卷掛載到容器的/we-bapp目錄:
$ sudo docker run -d -P --name web -v /webapp training/webapp
注意 -P是允許外部訪問容器需要暴露的端口。
查看該數據卷在主機上的存儲目錄
docker inspect -f {{.Volumes}} your-container-name
這種應該是在主機/var/lib/docker目錄底下隨機命名的一個目錄去掛載,如果是在mac上,則該目錄在visualbox上面。
3、掛載本機目錄(這個是在dockerfile中VOLUME無法做到的)使用-v標記也可以指定掛載一個本地的已有目錄到容器中去作為數據卷:
$ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp
上面的命令加載主機的/src/webapp目錄到容器的/opt/webapp目錄
掛載一個本地主機文件作為數據卷-v標記也可以從主機掛載單個文件到容器中作為數據卷:
$ sudo docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash這樣就可以記錄在容器輸入過的命令歷史了。
深入理解Docker Volume(一)
深入理解Docker Volume(二)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26599.html
摘要:在前一篇文章學習與和應用一初步認識中,我們初步介紹了解決了什么問題,容器化技術與傳統的虛擬化方式的區別,以及簡要介紹了的幾大核心概念鏡像容器和倉庫。針對上述問題,提供了的,通過使用指令配置的方式來創建鏡像。 在前一篇文章 Docker學習與和應用(一)_初步認識中,我們初步介紹了Docker解決了什么問題,Docker容器化技術與傳統的虛擬化方式的區別,以及簡要介紹了Docker的幾大...
摘要:下面創建一個名為的容器,并加載一個數據卷到容器的目錄。如果需要在刪除容器的同時移除數據卷。 容器內部以及容器之間的數據管理是怎么樣進行的? showImg(https://segmentfault.com/img/bVbt7pw?w=667&h=275); 其實在 Docker 內部以及容器之間管理數據,在容器中管理數據主要有兩種方式: 數據卷(Volumes) 掛載主機目錄 (Bi...
摘要:上一篇簡介常用命令與實踐一六鏡像操作獲取鏡像下載鏡像到本地上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像。 【上一篇:Docker簡介、常用命令與實踐(一)】 六、Docker鏡像操作 6.1 獲取鏡像(下載鏡像到本地) Docker Hub?上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像。從 Docker 鏡像倉庫獲取鏡像的命令是?docker pul...
摘要:發現問題之后,相應的解決方法也很簡單把當前目錄的擁有者賦值給,再啟動容器就一切正常了。這時我們已經可以知道容器的本地數據卷中文件目錄的權限是和宿主機上一致的,只是在容器和宿主機中可能映射為不同的用戶組名稱。 Volume數據卷是Docker的一個重要概念。數據卷是可供一個或多個容器使用的特殊目錄,可以為容器應用存儲提供有價值的特性: 持久化數據與容器的生命周期解耦:在容器刪除之后數據卷...
摘要:后續文談到私倉非常有用。恢復數據卷首先運行了一個新容器作為數據恢復的目標。第二行指令啟動了一個臨時容器,這個容器掛載了兩個,第一個與要恢復的共享,第二個將宿主機的當前目錄掛載到容器的下。參考會煮咖啡的貓咪 showImg(https://segmentfault.com/img/remote/1460000016001552?w=615&h=456); 目錄 01 Docker 常用...
閱讀 2774·2021-11-22 15:11
閱讀 3537·2021-09-28 09:43
閱讀 2889·2019-08-30 13:05
閱讀 3431·2019-08-30 11:18
閱讀 1447·2019-08-29 16:34
閱讀 1300·2019-08-29 13:53
閱讀 2908·2019-08-29 11:03
閱讀 1658·2019-08-29 10:57