Docker安装Redis并使用Another Redis Desktop Manager连接
<div class="lake-content"><h2 id="WUu1O"><span class="ne-text">Redis简单介绍</span></h2>
<p id="ub9f5cc8c" class="ne-p"><span class="ne-text">Redis全称是Remote DIctionary Service,即远程字典服务。Redis 是一个使用C语言编写的、开源的(遵守 BSD 协议)、高性能的、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库。</span></p>
</div>
<div class="lake-content">
<h2 id="XQgAH"><span class="ne-text">查看可用的 Redis 版本</span></h2>
<blockquote>
<p id="ue0c55910" class="ne-p"><span class="ne-text">访问DokcerHub中的Redis镜像库地址:</span><span class="ne-text"><span class="ne-text">https://hub.docker.com/_/redis?tab=tags</span></span></p>
<p id="u4c85144b" class="ne-p"><span class="ne-text">可以通过 Sort by 查看其他版本的 Redis,默认是最新版本(<code class="ne-code"><span class="ne-text">redis:latest):</span></code></span><span class="ne-text">https://hub.docker.com/_/redis/tags?page=1</span></p>
</blockquote>
</div>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220903231939768-137235511.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<div class="lake-content">
<p id="u7e5503c5" class="ne-p"><span class="ne-text">此外,我们还可以用<code class="ne-code"><span class="ne-text"> docker search redis </span></code><span class="ne-text">命令来查看可用版本:</span></span></p>
<div class="cnblogs_code">
<pre>docker search redis</pre>
</div>
<div class="lake-content">
<p id="u76a341ac" class="ne-p"><span class="ne-text">输出如下:</span></p>
</div>
</div>
<p> <img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220903232018636-637559014.png" alt="" loading="lazy"></p>
<div class="lake-content">
<h2 id="EvEdw"><span class="ne-text">拉取最新版的Redis镜像</span></h2>
</div>
<div class="lake-content">
<p id="ufd3f42bb" class="ne-p"><span class="ne-text">这里我们拉取官方的最新版本的镜像:</span></p>
<div class="cnblogs_code">
<pre>docker pull redis:latest</pre>
</div>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220903232158936-645759595.png" alt="" loading="lazy"></p>
<h2><span class="ne-text">查看本地安装的镜像</span></h2>
</div>
<div class="lake-content">
<p id="ubb5b6ab1" class="ne-p"><span class="ne-text">使用以下命令来查看redis镜像是否成功拉取到本地:</span></p>
<div class="cnblogs_code">
<pre>docker images</pre>
</div>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220903232533769-1321687065.png" alt="" loading="lazy"></p>
<div class="lake-content">
<h2>设置Docker中的Redis容器运行外网连接</h2>
<p>首先Docker运行的每个容器都是隔离的,Redis默认不允许外部连接,因此想要部署在Docker容器内的应用连接上Redis,需要修改Redis默认配置,这里我们以配置文件运行redis即可。</p>
<h3>1、下载redis.conf文件</h3>
<p>首先创建挂载目录:</p>
<div class="cnblogs_code">
<pre>sudo mkdir redis</pre>
</div>
<p><code>redis.conf</code>是Redis的核心配置文件,默认docker运行的redis是不存在配置文件的,这里可以先从官网下载:</p>
<div class="cnblogs_code">
<pre>wget http://download.redis.io/redis-stable/redis.conf</pre>
</div>
<h3><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220912171519285-1004193425.png" alt="" loading="lazy"></h3>
<h3>2、设置redis.conf文件权限</h3>
<div class="cnblogs_code">
<pre>sudo chown -R $USER redis.conf</pre>
</div>
<blockquote>
<p>-R或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理<br>chown [-R] [用户名称:组名称] [文件或目录]</p>
</blockquote>
<h3>3、修改默认配置信息</h3>
<div class="cnblogs_code">
<pre>vi redis.conf<br>i 开始编辑<br>编辑完成后esc+:wq保存修改</pre>
</div>
<ul>
<li><span class="token builtin class-name"><span class="token number">bind 127.0.0.1 -::1 <span class="token comment">#这行要注释掉,解除本地连接限制</span></span></span></li>
<li><span class="token builtin class-name"><span class="token number"><span class="token comment">protected-mode no <span class="token comment">#默认yes,如果设置为yes,则只允许在本机的回环连接,其他机器无法连接。</span></span></span></span></li>
<li><span class="token builtin class-name"><span class="token number"><span class="token comment"><span class="token comment">daemonize no <span class="token comment">#默认no 为不守护进程模式,docker部署不需要改为yes,docker run -d本身就是后台启动,不然会冲突</span></span></span></span></span></li>
<li><span class="token builtin class-name"><span class="token number"><span class="token comment"><span class="token comment"><span class="token comment">requirepass <span class="token number">123456 <span class="token comment">#设置密码</span></span></span></span></span></span></span></li>
<li><span class="token builtin class-name"><span class="token number"><span class="token comment"><span class="token comment"><span class="token comment"><span class="token number"><span class="token comment">appendonly <span class="token function">yes <span class="token comment">#持久化</span></span></span></span></span></span></span></span></span></li>
</ul>
<h2 id="dUzNB"><span class="ne-text">创建并运行一个Redis容器和设置链接密码</span></h2>
</div>
<div class="lake-content">
<p id="ucc799a0d" class="ne-p"><span class="ne-text">Redis镜像拉取成功以后,我们可以使用以下命令来运行创建一个名为redis-test的redis容器:</span></p>
<div class="cnblogs_code">
<pre>docker run --name redis-test -p 6379:6379 -v /docker-data/redis/redis.conf:/etc/redis/redis.conf -v /docker-data/redis:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456</pre>
</div>
<div class="lake-content">
<p id="ufd3d36fa" class="ne-p"><strong><span class="ne-text">参数说明:</span></strong></p>
<div class="lake-content">
<ul class="ne-ul">
<li id="ue24b7bac"><span class="ne-text"> --name redis-test:容器名称。</span></li>
<li id="uff6889d5"><span class="ne-text">-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。</span></li>
<li>-v /docker-data/redis/redis.conf:/etc/redis/redis.conf : 将主机中配置文件挂载到容器中</li>
<li>-v /docker-data/redis:/data : 将主机中data挂载到容器的/redis</li>
<li>-d redis redis-server /etc/redis/redis.conf:表示后台启动redis,以配置文件启动redis,加载容器内的conf文件。</li>
<li>redis-server /etc/redis/redis.conf : 容器中以配置文件方式启动redis</li>
<li>redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置</li>
<li>redis-server --requirepass 123456 :redis连接密码设置<span class="ne-text"> </span></li>
</ul>
<p><span class="ne-text"><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220912175125697-166615968.png" alt="" loading="lazy"></span></p>
</div>
</div>
</div>
<div class="lake-content">
<h2 id="asNtt"><span class="ne-text">验证Redis是否安装成功</span></h2>
</div>
<div class="lake-content">
<p id="uaf240759" class="ne-p"><span class="ne-text">最后我们可以通过 docker ps 命令查看容器的运行信息:</span></p>
</div>
<div class="cnblogs_code">
<pre>docker ps</pre>
</div>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220903233253684-756682855.png" alt="" loading="lazy"></p>
</div>
<div class="lake-content">
<p id="u55b3c73c" class="ne-p"><span class="ne-text">接着我们通过 redis-cli 连接测试使用 redis 服务。</span></p>
<div class="cnblogs_code">
<pre>docker exec -it redis-test /bin/<span style="color: rgba(0, 0, 0, 1)">bash
redis</span>-<span style="color: rgba(0, 0, 0, 1)">cli
# 密码登录
auth </span><span style="color: rgba(128, 0, 128, 1)">123456</span></pre>
</div>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220904002834648-1259179889.png" alt="" loading="lazy"></p>
</div>
<h2>Another Redis Desktop Manager介绍:</h2>
<p> Redis DeskTop Manager自从进入了0.9.9版本就开始付费使用或者贡献代码获得免费使用期限。这时候,Another Redis DeskTop Manager作为一款基于nodejs开发的免费的Redis可视化管理工具,可以运行在Windows、Linux、Mac平台,而且是开源免费应用,就很推荐使用了。</p>
<blockquote>
<p>gitee源码地址:https://gitee.com/qishibo/AnotherRedisDesktopManager</p>
<p>window .exe安装包下载地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases</p>
</blockquote>
<h2>Redis Client On Error: Error: connect ETIMEDOUT xxx.xxx.xxx:6379 Config right?</h2>
<p>由于上面我已经对redis.conf配置文件进行了允许外网连接配置的修改,报这个错误我猜测是因为服务器没有配置6379的开放端口,所以需要到服务器后端管理中添加6379端口配置。</p>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220912180445687-419512468.png" alt="" loading="lazy"></p>
<h2>Another Redis Desktop Manager测试连接:</h2>
<p> </p>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220912180724885-1141196039.png" alt="" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/1336199/202209/1336199-20220912213639249-2059371286.png" alt="" loading="lazy"></p>
<h2>参考文章:</h2>
<p>Docker安装Redis并配置文件启动</p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<blockquote >
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者名称:</span>追逐时光者</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者简介:</span>一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。
</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Can-daydayup/p/16653903.html
頁:
[1]