1. 程式人生 > 其它 >主機連線虛擬機器redis服務端

主機連線虛擬機器redis服務端

什麼是容器資料卷

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也被修改了,說明掛載是有效的

使用容器資料卷的好處:以後修改只需要在本地即可,容器內會自動同步