Docker Redis

Docker Redis Doc

下载 redis

  • 下载命令
  [plaintext]
1
docker pull redis
  • 查看命令
  [plaintext]
1
2
$ docker images | grep redis redis latest c5355f8853e4 5 weeks ago 107MB

指定下载的版本

默认是下载最新的版本。

有时候你可能希望指定下载的版本。

  • 查看版本

访问 [https://hub.docker.com//redis?tab=tags](https://hub.docker.com//redis?tab=tags)

  • 指定版本
  [plaintext]
1
$ docker pull redis:4.0

运行 image

  [plaintext]
1
docker run --name my-redis -d redis
  • 查看
  [plaintext]
1
2
3
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c86ec24c49dd redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 6379/tcp my-redis

访问

Redis 连接

另开一个 container 进入

  [plaintext]
1
docker exec -it c86ec24c49dd redis-cli

c86ec24c49dd 就是 redis 运行的 container id。

可以直接进入命令行

  [plaintext]
1
2
3
4
5
redis:6379> set name hello OK redis:6379> get name "hello" redis:6379>
  • 查看信息
  [plaintext]
1
redis:6379> info

docker 端口暴露

docker 端口暴露

  [plaintext]
1
docker run -p 6379:6379 --name out-redis -d redis

将容器的 6379 暴露到 外部 6379。

查看

  [plaintext]
1
2
3
4
5
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 23fc6d14c62b redis "docker-entrypoint.s…" Less than a second ago Up 2 seconds 0.0.0.0:6379->6379/tcp out-redis b430f08c9bcd redis "docker-entrypoint.s…" 4 hours ago Up 4 hours 6379/tcp some-redis

out-redis 就是对于外部可见的。

some-redis 对于外部不可见。

  • 查看端口信息
  [plaintext]
1
docker port ${container_id}

例子:

  [plaintext]
1
2
3
$ docker port 23fc6d14c62b 6379/tcp -> 0.0.0.0:6379

指定 conf

  • 下载地址

redis.conf

mac docker redis

此处给出修改后的配置 redis.conf

指定

  • 创建文件夹
  [plaintext]
1
mkdir mkdir ~/docker/redis

可以将 redis.conf 放在此路径下面

本测试环境为:

  [plaintext]
1
/Users/houbinbin/docker/redis/redis.conf
  • 运行命令
  [plaintext]
1
docker run -d -p 6379:6379 --name redis -v ~/docker/redis:/var/lib/redis redis redis-server /var/lib/redis/redis.conf
  • log
  [plaintext]
1
2cc8ed33d174cec19bfe5cf098d94c2ecfa3eaa198d7bb0de520fff847f9766b

运行已经存在的 Redis 镜像

查看镜像

  [plaintext]
1
docker images | grep redis

如下:

  [plaintext]
1
redis latest 5958914cc558 4 months ago 136MB

说明镜像已经存在。

运行镜像

  [plaintext]
1
docker run --name my-redis -d redis

日志如下

  [plaintext]
1
2
docker: Error response from daemon: Conflict. The container name "/my-redis" is already in use by container "c86ec24c49dd6e35fd9689d641f543bafcf0c6a91f43f2fbe16fab2ab834989f". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help'.

说明 container 已经存在。

运行 container

  [plaintext]
1
2
docker container start my-redis my-redis

正常启动。

访问 Redis

  • 查看 container.ID
  [plaintext]
1
2
3
4
5
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c86ec24c49dd redis "docker-entrypoint.s…" 3 months ago Up 4 minutes 6379/tcp my-redis
  • 进入 container
  [plaintext]
1
docker exec -it c86ec24c49dd redis-cli

直接进入,测试即可。

一些问题

启动警告

docker 官方的 redis 镜像如何指定配置文件

docker 安装部署 redis(配置文件启动)