1. docker拉取鏡像
docker pull redis
2 建立配置目錄和准備配置文件
mkdir -p /usr/local/docker-redis && cd /usr/local/docker-redis
wget http://download.redis.io/redis-stable/redis.conf
修改默認配置文件
- bind 127.0.0.1 #注釋掉這部分,這是限制redis只能本地訪問
- protected-mode no #默認yes,開啟保護模式,限制為本地訪問
- daemonize no#默認no,改為yes意為以守護進程方式啟動,可后台運行,除非kill進程(可選),改為yes會使配置文件方式啟動redis失敗
- dir ./ #輸入本地redis數據庫存放文件夾(可選)
- appendonly yes #redis持久化(可選)
3 運行
docker run -p 16379:6379 --name redis -v /usr/local/docker-redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker-redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
[root@localhost docker-redis]# docker run -p 16379:6379 --name redis -v /usr/local/docker-redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker-redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 641d4f77db7a9d49899c838ff8fb845a6ce8454b5dc2bde5de8f508636d9bfaf
命令解釋說明:
- -p 6379:6379 端口映射:前表示主機部分,:后表示容器部分。
- --name myredis 指定該容器名稱,查看和進行操作都比較方便。
- -v 掛載目錄,規則與端口映射相同。
- -d redis 表示后台啟動redis
- redis-server /etc/redis/redis.conf 以配置文件啟動redis,加載容器內的conf文件,最終找到的是掛載的目錄/usr/local/docker/redis.conf
- appendonly yes 開啟redis 持久化
4 使用docker ps 查看redis已經運行了
5 使用 docker exec -it redis /bin/bash進入redis
[root@localhost docker-redis]# docker exec -it redis /bin/bash
6 使用 redis-cli 可以測試
root@641d4f77db7a:/data# redis-cli 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> set name test OK 127.0.0.1:6379> get name "test" 127.0.0.1:6379>
7 設置密碼
vim /usr/local/docker-redis
#搜索
requirepass 123456
docker restart redis
8 備注
docker 里 啟動redis之后就立馬掛掉 檢查配置文件是否設置了daemonize yes,如果是,就要改為daemonize no,因為該選項讓redis成為在后台運行的守護進程,而docker容器必須要有一個前台進程才能留存