主機連線虛擬機器redis服務端
阿新 • • 發佈:2021-06-16
什麼是容器資料卷
docker理念回顧
將應用和環境打包成一個映象
如果資料都在容器中,那麼我們容器刪除,資料就會丟失。需求:資料持久化
MySql容器刪了===》刪庫跑路 需求:MySql資料可以儲存在本地
容器之間有一個數據共享的技術,Docker容器中產生的資料同步到本地
這就是卷技術,目錄的掛載將我們容器內的目錄掛載到Linux上面
總結一句話,容器的持久化和同步操作,容器間也是可以資料共享的
使用資料卷
方式一:使用命令來掛載
docker run -it -v 主機目錄:容器目錄 image /bin/bash
在主機中輸入
docker run -it -v /home/ceshi:/home centos /bin/bash
新建一個會話,在主機中輸入
[root@iZmu0fa4hv0jwzZ home]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e4176d89cd7 centos "/bin/bash" 3 minutes ago Up 3 minutes wizardly_bardeen [root@iZmu0fa4hv0jwzZ home]# docker inspect 1e4176d89cd7
可以找到
"Mounts": [ { "Type": "bind", "Source": "/home/ceshi", #主機內地址 "Destination": "/home", #docker容器內地址 "Mode": "", "RW": true, "Propagation": "rprivate" } ],
測試掛載是否成功
在容器內的/home目錄下輸入
[root@1e4176d89cd7 home]# touch test.java
可以看見在主機內測試目錄中有test.java檔案
[root@iZmu0fa4hv0jwzZ home]# ls ceshi
test.java
關閉容器
[root@1e4176d89cd7 home]# exit
exit
[root@iZmu0fa4hv0jwzZ home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
在主機中編輯test.java
[root@iZmu0fa4hv0jwzZ ceshi]# vim test.java
hello world
啟動容器
[root@iZmu0fa4hv0jwzZ home]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e4176d89cd7 centos "/bin/bash" 22 minutes ago Exited (0) 3 minutes ago wizardly_bardeen e15284bd88f5 tomcat:9.0 "catalina.sh run" 3 hours ago Exited (143) 18 minutes ago tomcat01 03ae4ad1999f nginx "/docker-entrypoint.…" 5 hours ago Exited (0) 3 hours ago nginx01 [root@iZmu0fa4hv0jwzZ home]# docker start 1e4176d89cd7 1e4176d89cd7 [root@iZmu0fa4hv0jwzZ home]# docker attach 1e4176d89cd7 [root@1e4176d89cd7 /]# cd /home [root@1e4176d89cd7 home]# ls test.java [root@1e4176d89cd7 home]# cat test.java hello world
可以發現docker容器中的test.java也被修改了,說明掛載是有效的