數(shù)據(jù)卷
如果我啟動一個redis數(shù)據(jù)庫哮兰,然后添加了很多key和value肠仪,假設突然宕機幌缝。我的數(shù)據(jù)就全部不見了霎终,當再次通過redis的鏡像啟動時滞磺,之前的key-value肯定都丟失了,所以我們需要一個方式將容器的數(shù)據(jù)和宿主機的目錄映射起來神僵。當操作redis的某些文件時,可以直接在宿主機上面看到對應的數(shù)據(jù)覆劈。這就是數(shù)據(jù)卷
1.解決什么問題
有些容器在使用過程中需要將數(shù)據(jù)持久化宿主機上面保礼,以備后面重啟容器可以加載已經(jīng)存在的數(shù)據(jù)
2.使用什么方式增加數(shù)據(jù)卷
docker run -it -v /宿主機絕對路徑:/容器內目錄 鏡像名
-v就是添加數(shù)據(jù)卷
3.兩個對比實驗
實驗1:未使用數(shù)據(jù)卷啟動redis
1.拉取redis鏡像
docker pull redis
2.啟動redis鏡像
docker run -it redis
3.使用redis-cli連接redis
1.查詢redis容器的id
docker ps -a
2.使用exec在指定容器中執(zhí)行redis-cli
docker exec -it 9111 redis-cli
3.設置一些鍵值對
set a a
4.退出redis-cli和redis
5.再次啟動redis和redis-cli查看是否存在a
docker run -it redis
docker ps -a
docker exec -it b1ba443dfc8e redis-cli
127.0.0.1:6379> get a
(nil)
實驗2:使用數(shù)據(jù)卷的方式啟動redis
1.啟動redis
docker run -p 6379:6379 -v /root/myredis/data:/data -v /root/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
2.使用redis-cli添加一些鍵值對
由于有端口映射,所以可以直接在宿主機上面執(zhí)行redis-cli
然后使用set a a
然后關閉客戶端
3.重啟redis
使用docker stop 容器id
使用docker start 容器id
4.檢查2中添加的鍵值對是否存在
直接在宿主機上面執(zhí)行redis-cli驗證2中的key是否存在