2020-08-25

最详细的docker 安装调试 redis,并且配置映射让外部终端(当然仅限于内网)可以访问redis server。

我用的是docker的社区版本,一共有stable,edge,test,experiemtal四个版本

安装Edge版本(一个月更新一次)

sudo curl -fsSL get.docker.com -o get-docker.sh

sudo sh get-docker.sh

安装Test版本

sudo curl -fsSL test.docker.com -o test-docker.sh

开启实验功能(仅限于Edge和Test的版本)

新建并编辑文件

mkdir -p /etc/systemd/system/docker.service.d/

cd /etc/systemd/system/docker.service.d/

vi experimental.conf

内容如下:

【Service】

Environment=DOCKER_OPTS=--EXPERIMENTAL=true

然后执行systemctl daemon-reload重启daemon,接着重启docker进程即可

systemctl restart docker,最后查看docker version

然而我用的是稳定版。上面只是记录一下而已,以防自己以后忘记了。

正文开始!

目前绝大部分Linux发行版本的仓库都已经内置了docker软件包,所以可以直接从更新源更新

不熟悉可以先搜索一下包名

yum search docker


我这里直接用最新版本stable

yum install docker -y

然后启动podman进程

systemctl start podman

查看进程状态

systemctl status podman

如何查看哪些和docker相关的进程可以启动,可以进入/usr/lib/systemd/system

find命令一敲,马上就出来了



查看官方仓库上是否有关于redis的docker镜像


拉取最新版本的redis镜像

docker pull redis:latest

接着查看本地image

docker images


接着这边需要先准备一个docker的配置文件,即redis.conf,先上redis官网先下载一个,选择稳定版,不要问为什么,稳定是最重要的,软件稳定,服务器稳定,业务稳定,你才能稳定下来!


然后上传以下的redis.conf文件到docker宿主机


上传方法多种多样,有rz和sz,winscp,scp等等,自己搞定

上传完成后,修改redis.conf, 如果你对redis非常熟悉,这一部分你应该猜到的

把 bind 127.0.0.1 这项注释掉,或者直接改成 bind 0.0.0.0 ,如果默认不改,那么redis-server默认只能从服务器本地访问!

# bind 127.0.0.1

or  bind 0.0.0.0

接着是保护模式,默认是yes

protected-mode yes

建议改为no,因为这是测试环境

redis通过配置文件设置密码,这个待会我会演示一下

# requirepass foobared

requirepass 123456

#用守护线程的方式启动redis

daemonize no

#redis持久化,默认是no,配置文件不改也行,待会直接在创建redis容器的时候可以加上- -appendonly yes这条命令,效果一样

appendonly yes

tcp-keepalive 300 

#防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300

接着创建映射目录,自己创建

我创建的是在test目录下


最终命令如下

docker run -p 6379:6379 --name redis-test-6 -v /test/redis/redis.conf:/etc/redis/redis.conf -v /test/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "123456"

-p 6379:6379:把容器内的6379端口映射到宿主机6379端口,不一定要6379端口

--name 容器名称

-v /test/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf复制到容器内的这个位置中

-v /test/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份,没备份,出事你工作就没了

-d  静默启动,同时返回容器ID

redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动

–appendonly yes:redis启动后数据持久化

另外 -i是交互式启动,-t是返回一个交互terminal

redis配置文件没改的,可以在这条命令的最后面添加 --xxxxxxx xxxx

运行成功后,可以用docker ps查看正在运行的所有容器,容器数量过多的时候可以加管道过滤符 | grep


如果容器没启动成功,可以用docker ps -a 查看所有的容器 看看有没有创建成功,数量太多加grep筛选出来,我这边成功后可以用

docker logs redis-test-6 查看,出现如下提示即为成功

停止容器,可以用docker stop 容器ID

启动容器,docker start 容器ID

记得开启防火墙6379端口,外行运维觉得防火墙碍事,图省事直接关掉,我不建议这样做,特别是生产环境下,生产环境安全第一!

firewall-cmd --zone=public --add-ports=6379/tcp --permanent

firewall-cmd --reload


执行交互,如下所示

docker exec -it redis-test-6 /bin/bash

redis-cli

在其它主机查看





也可以下载redis desktop manager连接服务器,刚刚设置的test看到了



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 文章简介 作为一个编程人员,不管是刚入门的,还是已经工作了几年的,都应该有自己的职业规划,一步一步去实现它。...
    桎梏_316b阅读 1,905评论 0 0
  • 环境:ubuntu 16.04 网上docker文章都写的太复杂了,实际自己安装一次是入门最快的方法。 关键词简单...
    云上听风阅读 408评论 0 0
  • =======================docker 基础镜像环境 alpine==============...
    百年叔叔阅读 864评论 0 1
  • 小白一枚,以下内容是自己百度总结的一些安装配置,主要是因为脑子笨,自己记录一下,同样给同是小白的小白们提供一些帮助...
    猫在树上看星星阅读 29,584评论 2 6
  • 已安装docker并配置外网 1.搜索redis资源 docker search redis 2.拉取redis镜...
    cqwebwang阅读 286评论 0 0

友情链接更多精彩内容