系列教程丨用 Docker 探索开源软件 —— Redis

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想在自己的计算机上安装 Java 或 erlang 等运行时环境,那么您就可以不安装它们,因为容器封装了所有依赖项......

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想在自己的计算机上安装 Java 或 erlang 等运行时环境,那么您就可以不安装它们,因为容器封装了所有依赖项,并在删除时可以不留下任何痕迹。

接下来,我会持续发布一些简短的教程,展示如何使用 Docker 探索各种开源软件。今天,让我们先从 Redis 开始。本教程的重点是让您熟悉创建容器和在容器中执行自定义命令所需的 Docker 命令,同时希望您可以在学习过程中也能学到一些有关 Redis 的基本知识。


简 介

本教程将介绍如何使用 Docker 探索 Redis。您可以在 Linux 或 Docker for Windows 模式下运行Docker 命令。同时,您也可以用 Play with Docker 来试试。


启动一个运行 Redis 的新容器

在这里,我们给它一个名字 —— “redis1”,同时公开6379端口(Redis 默认值)。

docker run -d -p 6379:6379 --name redis1 redis

检查它是否正在运行

docker ps

查看日志输出

docker logs redis1

在容器中运行 Redis CLI

我们将在运行中的容器中用“-it”启动一个新的交互式会话,并使用它来运行“redis-cli”。我们可以直接运行它,但是现在,让我们用“sh”启动一个 shell:

docker exec -it redis1 sh

现在,我们已经连接到容器了。让我们运行“redis-cli”:

# redis-cli

尝试一些基本的 Redis 命令

如果我们发送“ping”,应该会返回“PONG”:

127.0.0.1:6379> ping
PONG

尝试更多命令(设置一个键并增加一个计数器):

127.0.0.1:6379> set name mark
OK
127.0.0.1:6379> get name
"mark"
127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> incr counter
(integer) 2
127.0.0.1:6379> get counter
"2"

当我们完成尝试后时,退出“redis-cli”和“sh”:

127.0.0.1:6379> exit
# exit

从另一个关联容器进行连接

现在,让我们启动另一个名为“client1”的容器。我们使用 redis 基础镜像进行构建,但我们只使用它来运行“redis-cli”,所以我们只要求它在交互模式下运行“sh -it”。这意味着它不会自动运行 Redis。我们使用“--rm”命令,因此它会在 shell 退出后自行删除。

我们将它链接到“redis1”容器(运行中),它将在该容器中被简单地称为“redis”。

docker run -it --rm --link redis1:redis --name client1 redis sh

现在在这个容器中,让我们启动“redis-cli”并连接到“redis”:

# redis-cli -h redis
redis:6379>

现在让我们尝试发布一些命令。由于我们没有停止原始的“redis1”容器,我们之前创建的密钥应该仍然存在:

redis:6379> get name
"mark"
redis:6379> get counter
"2"

现在,退出“redis-cli”和“sh”:

redis:6379> exit
# exit

上述操作导致“client1”容器已经被删除了。因此,我们需要查看所有容器,包含已停止的容器:

docker ps -a

我们应该能看到这个单独的 Docker 容器。


清 理

让我们停止“redis1”容器,然后删除它。

docker stop redis1
docker rm redis1

我们还下载了 redis 镜像,我们将在列表中看到它:

docker image ls

它只有 83MB,所以我们可能想要保留它,以便下次运行 Redis 容器时使用,但是如果我们确定不再需要它,我们可以删除该镜像来释放磁盘空间,并让我们回到之前的起点:

docker image rm redis

总 结

如您所见,只需几个基本的 Docker 命令,我们就可以在容器中运行 Redis,甚至可以从另一个容器连接到它。

在下一篇系列文章中,我将向您展示如何在 PostgreSQL 上进行相同操作,这将使我们有机会探索 Docker 卷。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
29天前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
123 0
|
1月前
|
Oracle 关系型数据库 数据库
|
21天前
|
NoSQL Redis Docker
Docker中Redis数据迁移到本地
Docker中Redis数据迁移到本地
18 1
|
22天前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
107 2
|
29天前
|
JavaScript Java jenkins
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
75 0
|
29天前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
181 0
|
29天前
|
NoSQL Redis 数据安全/隐私保护
在Docker中设置Redis的密码
在Docker中设置Redis的密码
71 0
|
29天前
|
NoSQL Redis Docker
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
30 0
|
1月前
|
NoSQL Redis 数据安全/隐私保护
Docker安装和使用Redis
Docker安装和使用Redis
76 0
|
2月前
|
存储 NoSQL Redis
【docker专题_06】docker安装redis
【docker专题_06】docker安装redis