docker部署redis

一,创建redis docker

拉取docker包
docker pull redis

拉取完成查看:docker images

准备工作

创建docker目录环境

mkdir /docker/test/redis/data -p
部署容器
docker stop redis
docker rm redis
docker run --privileged=true --restart=always --name redis -p 6379:6379 -v /docker/test/redis/data:/data -d redis --requirepass "test520&"
  • –privileged=true:容器内的Root拥有真正Root权限,否则容器内Root只是外部普通用户权限

  • -restart=always:容器Docker的时候,自动重启Redis容器

  • -d # 表示在一直在后台运行容器

  • -p 9999:9999 # 对端口进行映射,将本地9999 端口映射到容器内部的9999端口

  • --name # 设置创建的容器名称

  • --requirepass "test520&" 设置数据库密码

  • appendonly yes #redis持久化(可选)

查看docker redis运行
docker部署redis_第1张图片
配置外网可以访问

而后使用windows ping raw.githubusercontent.com 得知真实ip为151.101.8.133,接着回到linux 修改vim /etc/hosts文件

echo "151.101.8.133 raw.githubusercontent.com">>/etc/hosts

下载redis.conf

mkdir /docker/test/redis/conf -p
wget -c https://raw.githubusercontent.com/redis/redis/4.0/redis.conf -O /docker/test/redis/conf/redis.conf

配置外网可以访问:

更改redis.conf 文件

bind 127.0.0.1

protected-mode yes

更改为

# bind 127.0.0.1

protected-mode no

修改配置

sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/g' /docker/test/redis/conf/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /docker/test/redis/conf/redis.conf
docker部署redis_第2张图片

重新部署容器

docker stop redis
docker rm redis
docker run --privileged=true --restart=always --name redis -p 6379:6379 -v /docker/test/redis/data:/data -v /docker/test/redis/conf/redis.conf:/etc/redis/redis.conf -d redis --requirepass "test520&"

二,docker常见问题

redis中数据持久化问题

持久化命令:

1.主动持久化save,执行save命令,会将全部的进程先挂起,直到save命令执行完成后,后续的进程才能执行,也就是会造成线程阻塞;

2.后台持久化bgsave,不会马上数据备份,不会造成线程阻塞。

你可能感兴趣的:(docker,redis,docker,java)