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