查找Redis鏡像
鏡像倉庫
https://hub.docker.com/
下拉鏡像
docker pull redis
查看鏡像
docker images
創建Redis容器
運行Redis鏡像
注意:運行Redis鏡像,配置數據卷時有坑。因為redis容器中不存在redis.conf文件,掛載時需在物理機中創建出redis.conf文件,映射進入redis容器。
創建redis.conf文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
命令啟動
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
參數說明
-p 6379:6379:將容器的6379端口映射到宿主機6379端口
-v /mydata/redis/data:/data:將數據掛載到宿主機
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf:將配置掛載到宿主機
-d redis redis-server /etc/redis/redis.conf:后台運行容器並加載配置文件
docker-compose啟動
version: '2'
services:
redis:
container_name: redis
image: redis
ports:
- "6379:6379"
volumes:
- /mydata/redis/data:/data
- /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
- /mydata/mysql/conf:/etc/mysql
restart: always
command: redis-server /etc/redis/redis.conf
environment:
- COMPOSE_PROJECT_NAME=redis-server
查看容器
docker ps -a
運行redis客戶端
docker exec -it redis redis-cli
Redis中存入數據
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"
127.0.0.1:6379> exit
重啟Redis容器
docker restart redis
查看Redis中存入的數據
[root@k8s-master01 ~]# docker exec -it redis redis-cli
127.0.0.1:6379> get a
(nil)
注意: 上步驟存儲的數據丟失,因為數據沒有持久化到本地。修改配置文件。
修改Redis配置
- 進入掛載數據卷
[root@k8s-master01 ~]# cd /mydata/redis/conf/
[root@k8s-master01 conf]# ls
redis.conf
[root@k8s-master01 conf]# pwd
/mydata/redis/conf
- 修改配置
cat > redis.conf <<-EOF
appendonly yes
EOF
重啟容器配置生效
docker restart redis
再次存入數據
[root@k8s-master01 conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set aa bb
OK
127.0.0.1:6379> get aa
"bb"
再次重啟容器
docker restart redis
再次查看數據
[root@k8s-master01 conf]# docker exec -it redis redis-cli
127.0.0.1:6379> get aa
"bb"
Docker啟動容器自啟
docker update redis --restart=always