Linux下安装Docker
在我们安装好Docker以后,就可以在Docker中安装我们要安装的服务了,比如本文中,我们安装MySQL8服务。
搜索Redis镜像
Redis镜像有多个,我们可以搜素看看有哪些镜像,然后选择自己需要的镜像
docker search redis
拉取redis镜像
如果执行docker pull redis,不带版本,则是拉取最新版本的。
#不推荐,最新版本的redis不一定适配了你当前的操作系统和容器,容易有问题
docker pull redis
docker pull redis:6.0
执行命令后,等待下载。
准备redis.conf文件
创建目录:data/redis
mkdir -p /data/redis
创建redis.conf文件
touch redis.conf
编辑redis.conf
vim /data/redis/redis.conf
在文件中写入
#允许外网访问
bind 0.0.0.0
daemonize NO
protected-mode no
requirepass waitao
创建Redis容器
不带版本的创建(如果是不带版本的,此处创建容器,docker会自动拉取最新的镜像,即使之前已经拉取了指定版本的镜像,这里也会从新再去拉取最近版本的镜像)
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
带版本的创建(如果不带版本,也会从新再去拉取最近版本的镜像)
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis:6.0 redis-server /etc/redis/redis.conf --appendonly yes
命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
–name redis : 容器名字
-v /data/redis/redis.conf:/etc/redis/redis.conf : 挂载,将主机中配置文件挂载到容器中
-v /data/redis/data:/data : 挂载,将主机中data挂载到容器的/data
-d redis 指定redisd的镜像(如果不带版本,此处会重新拉去最新的版本)
–appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
redis-server /etc/redis/redis.conf : 容器中以配置文件方式启动redis
如果出现如下错误,重启docker即可
docker: Error response from daemon: driver failed programming external connectivity on endpoint redis (d7e281f5ed4ce3ddf209e2ff4d4fcf9622eef51230c49277abcfe960af958d2e):
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.17.0.2:6379 ! -i docker0: iptables: No chain/target/match by that name.
systemctl restart docker
正常创建启动的redis,如下所示
docker ps -a
如果出现的是如下这样,则表示没有创建成功
此时可以通过查看日志,查看具体的报错
docker logs redis
例如下面,在根据具体的问题,具体排查
测试访问Redis
注意:需要开放端口