Docker 运行 Redis

Feb 26, 2019 16:00 · 415 words · 1 minute read Docker Redis Container

Docker 的一大优点是无需事先在开发者的计算机上安装就能快速试用某个应用程序。

启动一个运行着 Redis 的容器

命名为 my_redis 并对外暴露6379端口

$ docker run --name my_redis -p 6379:6379 -d redis

检查是否启动成功并正在运行:

$ docker ps

查看日志:

$ docker logs my_redis

在容器内部运行 Redis CLI 客户端

在运行的容器内部创建一个交互性的会话,并使用 redis-cli

$ docker exec -it my_redis sh
# redis-cli

尝试下基本的 Redis 命令

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name HF
OK
127.0.0.1:6379> get name
"HF"
127.0.0.1:6379> exit
# exit

从另一个链接的容器连接

启动另一个基于 redis 镜像的容器,但只用它来跑 redis-cli。所以我们要带上交互模式选项 -it 来运行 shell,这样就不会运行 Redis 本身了。--rm 会在 shell 运行后删除 redis。

$ docker run --name my_client -it --rm --link my_redis:redis redis sh
# redis-cli -h redis
redis:6379> get name
"HF"

退出 redis-cli 和 shell

redis:6379> exit
# exit

my_client 容器会把自己删掉。

docker ps -a

只能看到上一个 Docker 容器

清除

终止并删除 my_redis 容器

$ docker stop my_redis
$ docker rm my_redis

运行容器,但数据存储在本地(推荐)

$ docker run --name my_redis -p 6379:6379 -v path/to/data:/data -d redis redis-server --appendonly yes
  • -v path/to/data:/data 将本地的储存 redis 数据的路径挂在到容器的 /data 目录
  • redis-server --appendonly yes 打开 redis 持久化配置,容器停止运行后数据不会丢失