參考:
- docker redis 官網(wǎng)https://hub.docker.com/_/redis/
- redis 官網(wǎng) https://redis.io/download
安裝 6.2.5 版本
修改 redis.conf 配置:到redis官網(wǎng)上下載一個6.2.5版本壓縮包,取得里面的redis.conf,來修改,以備用。image.png
寫 redis_Dockerfile 文件
# for redis
FROM redis:6.2.5
# the owner for this image
MAINTAINER chenjd
# set time zone
ENV TIME_ZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
#################################
# for jdk
# do nothing
#################################
# for app path
RUN mkdir -p /home/admin/redis/data
RUN mkdir -p /home/admin/redis/logs
RUN mkdir -p /home/admin/redis/conf
#################################
# for redis conf (實(shí)際上外面有-v映射進(jìn)來,這里可以不要cp)
COPY redis.conf /home/admin/redis/conf/redis.conf
#暴露需要用到的端口,這里的端口是根據(jù)你配置的 redis.conf 配置文件中的端口
EXPOSE 6379
#鏡像實(shí)例啟動后執(zhí)行命令
CMD ["redis-server","/home/admin/redis/conf/redis.conf"]
制作docker鏡像
docker build -f redis_Dockerfile -t my_redis .
啟動鏡像
# 創(chuàng)建映射目錄
mkdir -p /home/admin/redis/data
mkdir -p /home/admin/redis/logs
# 千萬不要掛載這個目錄進(jìn)去,否則會把里面的 文件覆蓋掉
mkdir -p /home/admin/redis/conf
# 把 配置文件拷貝一份到conf下,否則 -v 時會把容器里面的配置文件夾覆蓋了
cp redis.conf /home/admin/redis/conf/
# 試一下,這樣是否可以
touch /home/admin/redis/logs/redis_6379.log
chmod -R 777 /home/admin/redis
# 啟動一個鏡像實(shí)例
docker run -it --name my_redis --privileged=true -v /etc/localtime:/etc/localtime -v /home/admin/redis/data:/home/admin/redis/data -v /home/admin/redis/logs:/home/admin/redis/logs -v /home/admin/redis/conf:/home/admin/redis/conf -p 6379:6379 --restart unless-stopped -d my_redis:latest
進(jìn)入Redis容器
docker exec -it my_redis /bin/bash
通過密碼進(jìn)入Redis控制臺
redis-cli -h 127.0.0.1 -p 6379 -a 密碼
總結(jié)一下
- redis.conf 配置文件設(shè)置錯誤導(dǎo)致的
1)比如 daemonize yes 跟 docker run -d 沖突,必須為no;
2)dbfilename 設(shè)置時帶路徑,實(shí)際上都在dir目錄下
3)還有 log路徑,需要 事先有一個空的log文件在那個目錄下,啟動才不會報(bào)錯
