centos8使用docker安装redis

  |  

拉取镜像

docker pull redis:5

$:docker images 你会看到 redis 的镜像

在/data/docker/redis 文件夹下创建 redis.conf(没有/data/docker/redis 文件自己创建)
在 redis.conf 写入(注释的不要)
port 6379 //开启端口 6379
bind * //docker 内部绑定容器需要使用*号 //不能使用 127 127 是相对于母机的如果跨 docker 没用 docker 内部指向不一样(在外部访问不了 就用 bind 0.0.0.0)
daemonize no
pidfile /data/redis/redis.pid
appendonly yes
写好保存

启动 redis 执行命令(注释的不要)
docker run
-p 6379:6379 \ //映射端口 容器内到宿主的 127.0.0.1:6379
–name redis \ //给容器起名名字叫做 redis
-v /data/docker/redis/data:/data \ //映射文件夹
-v /data/docker/redis/redis.conf:/etc/redis/redis.conf \ //映射文件
-d redis:5 \ //使用 redis 的 pull 的版本
redis-server /etc/redis/redis.conf \ //使用 redis 配置文件开启 redis 服务
–requirepass “123456” \ //密码
–appendonly yes 后台运行
在这里插入图片描述

1
2
3
4
5
6
7
8
9
docker run \
-p 127.0.0.1:6379:6379 \
--name redis \
-v /data/docker/redis/data:/data \
-v /data/docker/redis/redis.conf:/etc/redis/redis.conf \
-d redis:5 \
redis-server /etc/redis/redis.conf \
--requirepass "123456" \
--appendonly yes

$: docker ps
在这里插入图片描述

使用 redis 镜像执行 redis-cli 命令连接到刚启动的容器
$:docker exec -it redis redis-cli
//输入密码
$: auth 123456
测试
$:keys *
在这里插入图片描述
说明成功了

没有安装 docker? 请看 centos8 Docker 上安装的 postgres

出现的问题:
[root@localhost ~]# docker run -d -p 9000:80 centos:httpd /bin/sh -c /usr/local/bin/start.sh
d5b2bd5a7bc4895a973fe61efd051847047d26385f65c278aaa09e4fa31c4d76
docker: Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen (6bda693d1143657e46bee0300276aa05820da2b21a3d89441e820d1a274c48b6): (iptables failed: iptables –wait -t nat -A DOCKER -p tcp -d 0/0 –dport 9000 -j DNAT –to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1))

原因:

docker 服务启动时定义的自定义链 DOCKER 由于某种原因被清掉
重启 docker 服务及可重新生成自定义链 DOCKER

解决:

重启 docker 服务后再启动容器
systemctl restart docker
再次执行那个命令

其他命令:
//启动 redis
docker start redis

文章目录