查找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