目錄
- 1,拉取鏡像
- 2,創(chuàng)建數(shù)據(jù)卷
- 3,創(chuàng)建并編寫配置文件
- 4,創(chuàng)建并啟動(dòng)容器
通過(guò)Docker部署Redis,比起我們自己編譯安裝的方式,會(huì)更加方便容易管理。今天就來(lái)簡(jiǎn)單分享一下使用Docker部署Redis數(shù)據(jù)庫(kù)。
1,拉取鏡像
通過(guò)下列命令:
docker pull redis
2,創(chuàng)建數(shù)據(jù)卷
通常,類似于MySQL,Redis作為數(shù)據(jù)庫(kù),我們最好還是需要將其配置和數(shù)據(jù)等等掛載到數(shù)據(jù)卷以持久化到宿主機(jī)。
仍然是使用具名掛載的方式方便管理。
docker volume create redis-config docker volume create redis-data
這樣就創(chuàng)建了兩個(gè)數(shù)據(jù)卷分別是存放配置文件和數(shù)據(jù),大家也可以自行命名。
3,創(chuàng)建并編寫配置文件
先進(jìn)入到配置文件的數(shù)據(jù)卷目錄,可以通過(guò)docker volume inspect
命令查看數(shù)據(jù)卷的位置:
docker volume inspect redis-config
進(jìn)入目錄后創(chuàng)建名為redis.conf
的文件,并加入如下內(nèi)容:
requirepass 12345678 dir /data
這里設(shè)置了密碼為12345678
,設(shè)定了數(shù)據(jù)文件存放目錄為/data
,這些配置都可以自定義,更多配置可以參考這篇博客。
4,創(chuàng)建并啟動(dòng)容器
執(zhí)行下列命令:
docker run -id --name=redis -v redis-config:/usr/local/etc/redis -v redis-data:/data -p 6379:6379 -e LANG=C.UTF-8 redis su -l root -c "redis-server /usr/local/etc/redis/redis.conf"
上述參數(shù)如下:
-v
指定數(shù)據(jù)卷,可見將容器內(nèi)/usr/local/etc/redis
掛載至了數(shù)據(jù)卷redis-config
,將容器內(nèi)/data
掛載至數(shù)據(jù)卷redis-data
,可見這里掛載數(shù)據(jù)卷的容器內(nèi)路徑和我們上述預(yù)先寫的配置文件中對(duì)應(yīng)的路徑是要一致的-p
用于暴露端口-e
用于指定容器內(nèi)環(huán)境變量,設(shè)置容器的語(yǔ)言環(huán)境變量LANG
值為C.UTF-8
,這個(gè)最好是要設(shè)置,否則容器內(nèi)默認(rèn)是英文環(huán)境,使得Redis可能無(wú)法存放中文內(nèi)容
末尾是啟動(dòng)命令,單獨(dú)拿出來(lái)看一下:
su -l root -c "redis-server /usr/local/etc/redis/redis.conf"
意思是在容器內(nèi)以root
身份運(yùn)行redis-server
并指定了配置文件位置。
之所以要以root
身份運(yùn)行,是因?yàn)榉乐蛊錄]有權(quán)限將數(shù)據(jù)寫入到磁盤。也可見最后指定的配置文件路徑,和前面-v
掛載的配置文件數(shù)據(jù)卷的容器內(nèi)路徑一致,這里好理解,但是要注意,如果你是自定義別的路徑與文件名就需要在-v
掛載時(shí)和最后啟動(dòng)指定配置時(shí)做一下變化了。
最后,就可以使用客戶端連接服務(wù)器上的Redis了!