一.docker中安裝好redis後如下,我安裝的是reidis5.0.5版本
二.指定redis.conf 啓動
docker run -p 6379:6379 --name iredis -v /home/docker/redis/config/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis:5.0.5 redis-server /etc/redis/redis.conf --appendonly yes
三 參數說明
注意:在docker中啓動redis一定要把:daemonize 設置爲 no,這個很重要,如果不是no docker會一直啓動失敗,原因是docker本身需要後臺運行,而這個配置選項也是以守護進程啓動,兩者會衝突
1.-p 6379:6379:
第一個端口是宿主機端口(服務器端口),第二個端口是容器端口(容器是一個個沙箱外部不不能訪問的),將容器的6379端口映射到宿主機的6379端口上,這樣可以通過訪問宿主機6379來訪問redis;
2.–name iredis:
容器的名字 iredis 方便以後操作容器(docker start iredis ;docker stop iredis 等等);
3.-v /home/docker/redis/config/redis.conf:/etc/redis/redis.conf:
掛載持久化配置
/home/docker/redis/config/redis.conf :是宿主機(服務器)你自己的redis.conf文件路徑
/etc/redis/redis.conf : 容器內部的redis.conf文件路徑,不用手動創建,容器啓動時會把上邊宿主機的redis.conf自動映射到改目錄下. 這樣在修改redis.conf文件時候就不用進入到容器內部去修改了
4.-v /home/docker/redis/data:/data
掛載持久化文件
/home/docker/redis/data是宿主機中持久化文件的位置,/data是容器中持久化文件的位置
5.-d 後臺啓動
6.redis:5.0.5 redis-server /etc/redis/redis.conf
redis:5.0.5 是鏡像的名稱+版本如下
redis-server /etc/redis/redis.conf 指定用配置文件的方式啓動redis;
7. –appendonly yes 開啓持久化
四.進入到容器內部驗證下是否生成 redis.conf 和 data持久化文件呢?
# 查看下正在運行的docker容器
[root@instance-f4khj00x /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ac032107e05 redis:5.0.5 "docker-entrypoint.s…" 11 minutes ago Up 11 minutes 0.0.0.0:6379->6379/tcp iredis
# 進入到容器內部
[root@instance-f4khj00x /]# docker container exec -it 2ac032107e05 /bin/bash
# 進入剛配置的容器目錄 /etc/redis/redis.conf
root@2ac032107e05:/data# cd /etc/redis/
root@2ac032107e05:/etc/redis# ls
redis.conf
# 進入持久化目錄data
root@2ac032107e05:/etc/redis# cd /data/
root@2ac032107e05:/data# ls
appendonly.aof backup.db dump.rdb root