docker 构建 mongodb,redis

最近需要在虚拟机上构建搭建mongo的docker容器,搞了半天老有错,归其原因,是因为现在最新的mango镜像的启动方式发生了变化,故此现在好多帖子,就是错的。

ok,话不多说:

# 拉取最新镜像(就是这个镜像,跟原先的已经不一样了,会导致后面启动mango的时候出问题)
docker pull mongo:latest

# 查看一下
docker images

# 创建一个存放数据的目录
mkdir -p ~/data/mongo

# 创建mongodb容器
docker run -p 27017:27017 -v ~/data/mongo:/data/db --name mongodb --restart=always -d mongo

在上面的命令中,几个命令参数的详细解释如下:

-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务

-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录

--name 为设置该容器的名称

-d 用于以后台模式(detached mode)运行容器

# 启动mongo容器,并直接进入交互模式
docker exec -it mongodb mongosh

或者

docker exec -it mongodb mongosh admin

 这里需要注意,启动的时候用的是 mongosh,而不是mongo,这是新版mongo镜像于老版的差异导致的,也就造成了各种帖子不管用的原因了。

# 切换到admin数据库
use admin

# 创建用户
db.createUser({user: "admin",pwd: "m3206oa20o7a1jg9a5",roles:["root"]})

# 登录认证
db.auth('admin', 'm3206oa20o7a1jg9a5')

# 查看数据库
show dbs

 

# 创建数据库并设置密码
use huchi

db.createUser({user: "admin",pwd: "m3206oa20o7a1jg9a5",roles:["readWrite"]})

db.auth('admin', 'm3206oa20o7a1jg9a5')

到这就完成了....

然后,就是使用了,也比较简单:

db.xx_数据表.insert( { name:"abc", age:22, 'weight': '50斤'} )

这就完事了.....

=============================

使用Docker安装Redis是一个快速且简便的过程。以下是详细的步骤:

1. 安装 Docker

首先,确保你的系统上已经安装了Docker。如果尚未安装,可以参考Docker官方文档根据你的操作系统进行安装。

2. 拉取 Redis 镜像

打开终端或命令提示符,运行以下命令来拉取最新版本的Redis镜像:

bash

深色版本

docker pull redis

如果你想拉取特定版本的Redis,可以在pull命令后面指定标签,例如,拉取5.0版本:

bash

深色版本

docker pull redis:5.0

3. 运行 Redis 容器

在成功拉取Redis镜像后,你可以通过以下命令启动一个Redis容器:

bash

深色版本

docker run --name my-redis -d redis

这里,--name my-redis是给你的容器起的名字,-d表示让容器在后台运行。

如果你需要将Redis的数据持久化到主机上,可以添加卷映射选项。例如,将主机的/my/local/dir目录映射到容器内的/data目录(Redis默认存储数据的位置):

bash

深色版本

docker run --name my-redis -v /my/local/dir:/data -d redis

此外,如果你想指定Redis监听的端口,可以使用-p参数。例如,将主机的6379端口映射到容器的6379端口:

bash

深色版本

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

这里注意,如果选择这个命令:

docker run --name my-redis -v /my/local/dir:/data -d redis

那么等于没有添加端口映射。外界就无法访问了。

所以,这块不能这么干。最好把 -p 参数也加上。已经创建的容器需要删了它。

docker run --name redis -v /home/ymk/data/redis:/data -p 6379:6379  -d redis

4. 管理 Redis 容器

你可以使用以下命令查看正在运行的容器:

bash

深色版本

docker ps

要停止或启动你的Redis容器,可以分别使用:

bash

深色版本

docker stop my-redis
docker start my-redis

5. 使用 Redis

容器启动之后,你可以使用docker exec命令进入Redis容器内部,或者直接从外部使用redis-cli连接到该容器。如果你已经在容器中安装了redis-cli,可以直接运行:

bash

深色版本

docker exec -it my-redis redis-cli

如果想从主机连接,确保你已经安装了redis-cli,然后执行:

bash

深色版本

redis-cli -h localhost -p 6379

这样,你就完成了使用Docker安装和配置Redis的基本过程。

看下具体例子:

redis没有具体的数据库,只有0~15分区。默认是0分区。

如果要换分区的话:

然后就可以插入key,value 了。

set  key   value

以及:

get  key

  • 哈希类型:用于存储对象。

    bash

    深色版本

    HSET myhash field1 "some value"

    获取字段的值:

    bash

    深色版本

    HGET myhash field1
  • 列表类型:用于存储有序的字符串列表,可以从两端插入或移除元素。

    bash

    深色版本

    LPUSH mylist "value1"
    RPUSH mylist "value2"

    查看列表内容:

    bash

    深色版本

    LRANGE mylist 0 -1

LRANGE mylist 0 -1 是 Redis 中用于获取列表类型数据的命令。具体来说,这个命令是用来从名为 mylist 的列表中获取元素的。

  • LRANGE:这是Redis中的一个命令,用来返回列表中指定区间内的元素。
  • mylist:这是你的列表的名字。在使用LRANGE命令时,你需要指定从中检索元素的列表名称。
  • 0 -1:这两个数字指定了你想要检索的元素的范围。在这个例子中:
    • 0 表示起始索引。列表的第一个元素的索引是0。
    • -1 表示结束索引。当你在Redis的LRANGE命令中使用-1作为结束索引时,它表示列表的最后一个元素。因此,0 -1实际上意味着“从第一个元素到最后一个元素”,即获取列表中的所有元素。

所以,执行LRANGE mylist 0 -1将会返回mylist列表中的所有元素,按照它们被插入的顺序排列。如果你只想获取列表的一部分,你可以改变这两个数字。例如,LRANGE mylist 0 2将返回列表中的前三个元素(索引为0、1和2的元素)。

  • 集合类型:无序集合,不允许重复成员。

    bash

    深色版本

    SADD myset "member1"
    SADD myset "member2"

    获取所有成员:

    bash

    深色版本

    SMEMBERS myset
  • 有序集合类型:类似于集合,但是每个成员关联一个分数,这使得成员可以根据分数来排序。

    bash

    深色版本

    ZADD myzset 1 "one"
    ZADD myzset 2 "two"

    获取按分数排序的成员:

    bash

    深色版本

    ZRANGE myzset 0 -1 WITHSCORES

如果你希望清理数据库并删除所有现有的键,可以使用命令 FLUSHALL 来清空 Redis 数据库中的所有数据。例如:

sh

深色版本

127.0.0.1:6379> FLUSHALL

执行上述命令后,Redis 数据库中的所有键都将被删除。请谨慎使用此命令,因为它会清除数据库中的所有数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值