docker 安装 redis 让宿主机访问


文章目录



docker 安装 redis


拉取镜像

docker pull redis

宿主机创建映射目录


创建目录

sudo mkdir  -p docker/redis/redis01/conf
sudo mkdir  -p docker/redis/redis01/data

conf 目录放redis.conf 配置文件
data 目录映射redis数据目录

上面文件都要chmod 777 的权限


创建配置文件

在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下

cd docker/redis/redis01/conf
wget http://download.redis.io/redis-stable/redis.conf

文件也需要 chmod 777 的权限


启动容器

cd docker/redis/redis01

docker run -p 6379:6379 --name redis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

首先定位到 redis01 目录;
然后启动运行docker.

-p      6379:6379
            容器中监听6379 ,同时绑定宿主机 6379端口
--name  redis
            容器设置别名 redis
-v   $PWD/conf/redis.conf:/etc/redis/redis.conf 
            映射当前目录下conf/redis.conf 文件到 容器目录文件 /etc/redis/redis.conf 
-v   $PWD/data:/data
            映射当前目录下 data 到 容器目录 /data
-d
            静默启动,同时返回容器ID
/etc/redis/redis.conf
            以容器目录下这个配置文件启动redis
--appendonly yes
            开启数据持久化
            

启动docker 成功,返回了容器id;
下面我们测试下能否用宿主机客户端连接到容器里面的redis 服务.


宿主机连接容器redis

我们使用 redis desktop 工具创建一个本地连接

保存连接后,我们尝试连接127.0.0.1:6379

连接失败?
redis 配置文件默认只能本机访问此端口,
就是说只能docker 内的服务可以连接 127.0.0.1:6379 ,
宿主机要想连接到,还需要设置一下配置文件.

首先 停止redis 容器

docker stop redis

设置redis.conf

bind 127.0.0.1
protected-mode yes

==> 修改后

# bind 127.0.0.1 
protected-mode no

bind 127.0.0.1 被注释掉,不限制只有本机可以连接.
protected-mode 禁止公网访问redis cache,加强redis安全 ( no ==> 可以访问 ,yes ==> 不可以访问 )
如果你为了更加安全,可以设置账号密码来访问redis
保存配置文件.


重新启动 redis 容器

docker restart redis

redis 是刚才创建容器时指定的别名

容器启动成功,当前运行的有2个容器,redis 和 mongodb

我们再用客户端尝试连接redis 服务

连接成功1

出自:docker 安装 redis 让宿主机访问

回到顶部