# 10 常用容器部署-Redis

下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。

在 Docker 中部署 Redis 容器。

# 10.1 搜索镜像

首先搜索镜像,命令:

docker search redis
1

找到官方镜像:

# 10.2 拉取镜像

拉取镜像,命令:

docker pull redis
1

# 10.3 配置

建立相应的目录,用于挂载,根据自己的目录进行新建:

mkdir -p /home/doubi/redis/data
mkdir -p /home/doubi/redis/conf
1
2

Redis 默认只能在本地访问,所以我们需要使用配置文件。

配置文件从哪获取?

可以从官网下载相应版本的配置文件,https://redis.io/docs/management/config/ 。如果找不到可以下载指定版本的 redis 安装包,在安装包中找到 redis.conf

如果你使用的是最新版本的 docker 镜像,不知道版本号是多少,可以去 DockerHub 官网查看,也可以使用如下方式查看:

# 或者通过镜像查看,里面有redis版本信息
docker inspect 镜像ID

# 也可以先启动一个容器,然后在宿主机使用如下命令查看:
docker exec -it 容器ID redis-server -v
1
2
3
4
5

下载完 redis.conf 复制一份到 /home/doubi/redis/conf 目录下。

然后按需修改配置:

# bind 127.0.0.1 				# 注释掉,这是限制redis只能本地访问
protected-mode no 		# 默认yes,开启保护模式,限制为本地访问
daemonize no					# 使用no,使用yes后台启动会和 docker run -d 的参数冲突,可能会启动失败
appendonly yes 				# redis持久化(可选)
requirepass 密码 			 # 配置redis访问密码
1
2
3
4
5

# 10.4 启动容器

配置文件修改好了,下面可以启动容器了,在启动的时候,指定配置文件。

命令:

docker run -d --privileged=true --restart=always --name redis -p 6379:6379 \
-v /home/doubi/redis/conf:/etc/redis \
-v /home/doubi/redis/data:/data \
-v /etc/localtime:/etc/localtime redis redis-server /etc/redis/redis.conf
1
2
3
4

解释一下:

  • -d :运行容器在后台;
  • --privileged=true :给予容器所有主机的权限;
  • --restart=always :设置容器的重启策略为总是重启。这意味着无论容器退出状态如何,Docker 都会尝试自动重启它;
  • --name redis :为容器指定一个名字,随便起,我这里叫 redis;
  • -p 6379:6379 :端口映射。将主机的 6379 端口映射到容器的 6379 端口,这样你就可以通过主机的 6379 端口访问容器内的 Redis 服务。
  • -v /home/doubi/redis:/etc/redis :容器卷映射。将主机上的 /home/doubi/redis 目录映射到容器内的 /etc/redis 目录,在这个目录下存放配置文件;
  • -v /home/doubi/redis/data:/data :容器卷映射。将主机上的 /home/doubi/redis/data 目录映射到容器内的 /data 目录,这样可以将容器内的数据保存到宿主机,这样即使容器被删除,数据也不会丢失;
  • -v /etc/localtime:/etc/localtime :容器卷映射。将主机上的系统时间(/etc/localtime)映射到容器内,以确保容器内的时间和主机同步。
  • redis :指定要运行的 Docker 镜像的名字,即 redis 镜像。
  • redis-server /etc/redis/redis.conf: 在容器内部启动 Redis 服务器,并使用挂载的配置文件/etc/redis/redis.conf

启动容器后就可以链接到 Redis 服务了,需要使用在配置文件中配置的密码。