目录
选择镜像
通过命令docker search redis命令查找redis镜像,在docker hub上寻找需要按章的版本。
[root@ecs-7bc6-0001 redis]# docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 7117 [OK]
bitnami/redis Bitnami Redis Docker Image 119 [OK]
sameersbn/redis 75 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0 & 5.0 51
kubeguide/redis-master redis-master with "Hello World!" 29
rediscommander/redis-commander Alpine image for redis-commander - Redis man… 26 [OK]
redislabs/redis Clustered in-memory database engine compatib… 21
arm32v7/redis Redis is an open source key-value store that… 17
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 16
oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Supp… 12
webhippie/redis Docker images for Redis 10 [OK]
s7anley/redis-sentinel-docker Redis Sentinel 8 [OK]
insready/redis-stat Docker image for the real-time Redis monitor… 7 [OK]
arm64v8/redis Redis is an open source key-value store that… 6
bitnami/redis-sentinel Bitnami Docker Image for Redis Sentinel 5 [OK]
redislabs/redisgraph A graph database module for Redis 5 [OK]
centos/redis-32-centos7 Redis in-memory data structure store, used a… 4
redislabs/redismod An automated build of redismod - latest Redi… 3 [OK]
wodby/redis Redis container image with orchestration 2 [OK]
frodenas/redis A Docker Image for Redis 2 [OK]
circleci/redis CircleCI images for Redis 2 [OK]
runnable/redis-stunnel stunnel to redis provided by linking contain… 1 [OK]
tiredofit/redis Redis Server w/ Zabbix monitoring and S6 Ove… 1 [OK]
cflondonservices/redis Docker image for running redis 0
xetamus/redis-resource forked redis-resource 0 [OK]
下载镜像
选择现在redis5.0.5
[root@ecs-7bc6-0001 redis]# docker pull redis:5.0.5
下载完成后查看镜像
[root@ecs-7bc6-0001 redis]# docker images redis
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 5.0.5 598a6f110d01 7 days ago 118MB
创建配置
创建安装目录,并在目录中创建conf配置目录和data数据目录,目录结构为
redis
--conf
--redis.conf
--data
在配置目录下创建redis配置,根据需要自定义配置,默认配置参考Redis官网默认配置,且docker容器运行redis,不需要将redis配置为daemonize运行,即daemonize no,且需要将logfile配置到有权限的位置。
创建启动容器
[root@ecs-7bc6-0001 redis]# docker run -itd --name redis-master -p 6380:6379 -v $PWD/data:/data -v $PWD/conf:/usr/local/etc/redis/ redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf
09e7b55bcacbca51546a27c94bfc42aba630eaacf861979e0a424d2d66072311
其中各个部分的意义为:
docker run,创建并运行容器
-i,开启容器的标准输入STDIN
-t,为容器开启伪终端tty
-d,容器后台运行
--name redis-master,容器名称为redis-master,
-p 6380:6379,开放容器的6379端口,并映射到宿主机的6380端口
-v $PWD/data:/data,安装目录下的data目录挂载到容器的/data目录
-v $PWD/conf:/usr/local/etc/redis,安装目录下的conf目录挂载到容器的/usr/local/etc/redis目录
redis:5.0.5,镜像名称
redis-server /usr/local/etc/redis/redis.conf,redis启动命令
容器启动之后,查看容器
[root@ecs-7bc6-0001 redis]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
09e7b55bcacb redis:5.0.5 "docker-entrypoint.s…" 14 minutes ago Up 14 minutes 0.0.0.0:6380->6379/tcp redis-master
测试
进入容器redis客户端测试
[root@ecs-7bc6-0001 redis]# docker exec -it 09e7b55bcacb redis-cli -a redis
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set 1 1
OK
127.0.0.1:6379> get 1
"1"
127.0.0.1:6379> del 1
(integer) 1
127.0.0.1:6379>
其中09e7b55bcacb为容器id,-a redis指定redis客户端登录密码,取决于自定义配置文件,没有密码则不要-a参数。
(完)(^_^)