docker容器之間呼叫_如何在Docker容器之間共享資料
技術標籤:docker容器之間呼叫
介紹
Docker是一種流行的容器化工具,用於向軟體應用程式提供包含執行所需的所有內容的檔案系統。使用Docker容器確保軟體將以相同的方式執行,而不管其部署在哪裡,因為它的執行時環境無殘忍地一致。 一般來說,Docker容器是短暫的,只要在容器中發出的命令完成就執行。然而,有時,應用程式需要在容器被刪除後共享對資料的訪問或持久化資料。資料庫,網站的使用者生成的內容和日誌檔案只是一些資料的示例,這些資料在Docker映象中是不切實際或不可能包含的,但是哪些應用程式需要訪問。 Docker卷提供對資料的持久訪問。
先決條件
要跟隨這篇文章,你將需要一個Ubuntu 16.04伺服器,具有以下:
- 具有sudo許可權的非root使用者。在使用Ubuntu 16.04初始伺服器設定指南介紹如何設定起來。
- 從第1步和第2步中的說明進行安裝Docker如何在Ubuntu 16.04安裝和使用Docker
注:即使先決條件給出了在Ubuntu 16.04安裝Docker指令, docker本文中Docker資料量的命令應該在其它作業系統上,只要Docker已安裝並執行sudo使用者已被新增到docker組。 Docker卷可以在建立容器的同一命令中建立和附加,也可以獨立於任何容器建立,然後再連線。在本文中,我們將介紹在容器之間共享資料的四種不同方法。
1 - 建立獨立卷
在Docker的1.9版本中引入的docker volume create命令,可以沒有它與任何特定的容器建立卷。 我們將使用這個命令來新增一個名為量DataVolume1 :
docker volume create --name DataVolume1
將顯示名稱,表示命令成功。
OutputDataVolume1
為了使用量,我們將建立一個從Ubuntu的映象新的容器,使用--rm標誌,當我們退出時自動刪除。 我們將使用-v安裝新卷。 -v需要大卷,一個冒號,然後是絕對路徑所在的卷應出現在容器內的名稱。 如果路徑中的目錄不作為映像的一部分存在,那麼將在命令執行時建立它們。 如果他們不存在,安裝的卷將隱藏現有內容。
docker run -ti --rm -v DataVolume1:/datavolume1 ubuntu
當我們在那裡,我們將寫一些資料到卷:
echo "Example1" > /datavolume1/Example1.txt
因為我們使用了--rm標誌,我們的容器時,將自動退出我們刪除。但是,我們的卷仍然可以訪問。
exit
我們可以驗證卷存在與系統上docker volume inspect :
docker volume inspect DataVolume1Output[ { "Name": "DataVolume1