關鍵詞
[
"linux",
"docker",
"volume",
"redis",
"redis.conf"
]
我的配置
{
"redis版本":"6.5",
"":""
}
1.下載redis.conf
注意事項 : 注意redis版本號 ( 我redis是6.5.0 , 但是我下載6.2.6的redis.conf也可以 )
(個人還是建議下載版本比較低的redis.conf)
修改redis.conf
配置
#若不注釋就只能本地連接 (默認不注釋)
# bind 127.0.0.1 -::1
#后台運行
#默認"daemonize no",修改為"daemonize yes"
#在redis.conf中注掉daemonize yes這一行,或者改為daemonize no。
#因為我們的docker run里參數-d就是以守護進程方式啟動redis,而配置文件里daemonize yes這個東東再次以守護進程方式啟動,
#而且它會讀取pidfile這個配置的文件作為進程ID文件。說白了,就是docker啟動參數跟redis.conf配置沖突了。
daemonize no
#認證密碼
#默認注釋"# requirepass foobared",取消注釋並修改密碼"requirepass your_password"
requirepass your_password
2.創建數據卷(volume),並將redis.conf復制到此數據卷的文件夾下
#創建數據卷
docker volume create redis_conf
#檢查redis_conf這個volume的基本信息
docker volume inspect redis_conf
[
{
"CreatedAt": "2022-01-18T15:07:08+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/redis_conf/_data",
"Name": "redis_conf",
"Options": {},
"Scope": "local"
}
]
#找到數據卷在服務器上的地址 - "/var/lib/docker/volumes/redis_conf/_data",
#並切換目錄至該地址
cd /var/lib/docker/volumes/redis_conf/_data
#將第1步整理好的"redis.conf"上傳到服務器的路徑"/var/lib/docker/volumes/redis_conf/_data",
3.執行docker run...並配置
首先明確一點 , 只要沒有"path/path/redis.conf"這個conf文件,"-v path/path/redis.conf:/etc/redis.conf",映射的只是路徑!
#以前執行docker run , 都是以{images Name / image Id}結尾
#這次是在{images Name / image Id}后又加了其他執行參數 .
docker run --name redis_ -p 6379:6379 -itd -v redis_conf:/etc/redis redis redis-server /etc/redis/redis.conf