我們首先來回顧一下docker的理念,就是將應用和環境打包成乙個映象,那資料呢就存在於容器中,如果容器被刪,那資料就會丟失,因此我們有乙個希望資料可以長久儲存的需求,就算容器被刪,也能找回資料,盡力減少刪庫跑路帶來的損失。實際上容器之間有一種資料共享的技術,使得docker容器產生的資料,直接同步到本地,這就是docker資料卷技術。
實現資料的持久化和同步操作,實際上就是目錄的掛載,將容器內的目錄掛載到容器外的目錄 ,即linux上面,例子如下圖所示。容器內的mysql檔案系統放在/usr/mysql目錄下,通過資料卷技術,可以自動同步到容器外的/home/mysql.
方式1.直接使用-v: docker run -it -v 主機目錄:容器內目錄 映象 /bin/bash
//目錄掛載
[root@wangstudy ~]# docker run -it centos /bin/bash
[root@56364a55ad50 /]# cd /home
[root@56364a55ad50 home]# ls
[root@56364a55ad50 home]# [root@wangstudy ~]# docker run -it -v /home/ceshi:/home centos /bin
//通過docker inspect 容器id查詢到掛載資訊
"mounts": [
],
測試:
我們在容器內home目錄下新增了檔案test.txt
然後去檢視容器外/home/ceshi,也發現了test.txt
說明已經掛載成功。
再測試:停止容器後修改檔案也能同步
1.停止容器
[root@wangstudy ceshi]# docker ps
container id image command created status ports names
d13e77bcdb8b centos "/bin/bash" 7 minutes ago up 7 minutes zealous_hellman
[root@wangstudy ceshi]# docker stop d13e77bcdb8b
d13e77bcdb8b
[root@wangstudy ceshi]# docker ps
container id image command created status ports names
2. 修改test.txt內容,新增了wang
3.重啟docker centos映象並進入檢視test.txt看到,同步成功
這表明我們要修改容器內的檔案,可以通過資料卷技術在容器外掛程式載的目錄下修改對應檔案而無需進入到容器內
docker學習 docker容器
1.容器檢視 已經啟動的容器 docker ps 所有的容器 docker ps a2.啟動容器相關引數 互動式容器 退出時容器處於停止狀態,無法使用 docker run it name mynginx nginx bin bash 退出當前容器 exit 守護式容器 埠88是宿主機的對映埠 do...
docker學習 docker安裝
1 解除安裝已經存在的docker 執行命令 yum remove docker docker client docker client latest docker common docker latest docker latest logrotate docker logrotate docke...
Docker學習 Docker映象
一 列出映象 命令 docker images optsions repositort a 標識列出所有 f 寫過濾條件 no trunc 不截斷id q 只顯示唯一id repository是倉庫名字 registry代表的是大庫 tag標籤名字 對應版本,id唯一標識 庫名字 標籤 對應乙個id...