当前位置: 首页 >  互联网技术 >  docker下载mongodb镜像并启动容器

docker下载mongodb镜像并启动容器

导读:1、查找mongodb相关镜像.docker search mongo.找到相关的镜像进行拉取,如果不指定版本,默认下载最新的mongoDB。建议自己先查找需要那个版本后在进行拉取,因为mongoDB不同版本之间差距较大。.2、拉取镜像.这里拉取mongodb6.0.docker

1、查找mongodb相关镜像

docker search mongo

找到相关的镜像进行拉取,如果不指定版本,默认下载最新的mongoDB。建议自己先查找需要那个版本后在进行拉取,因为mongoDB不同版本之间差距较大。

2、拉取镜像

这里拉取mongodb6.0

docker pull mongodb:6.0

拉取成功后,查看docker镜像

docker images

3、本地创建容器卷文件夹

首先在本地创建文件夹

D:\mongodb\conf
D:\mongodb\data
D:\mongodb\logs

进入conf文件夹创建mongod.conf文件

# 数据库文件存储位置
dbpath = /data/db
# log文件存储位置
logpath = /data/log/mongod.log  
#pid运行目录  
#pidfilepath = /var/run/mongodb/mongodb.pid
# 使用追加的方式写日志
logappend = true  
#启用日志文件,默认启用  
journal=true


#最大连接数  
maxConns=2048
# 是否以守护进程方式运行
# fork = true
# 全部ip可以访问
bind_ip = 0.0.0.0
# 端口号
port = 27017
# 是否启用认证
auth = true
# 设置oplog的大小(MB)
oplogSize=1755

进入logs目录文件创建mongod.log文件

4、通过命令创建新容器

docker run -d --name mongodb -p 27017:27017 --privileged=true --restart=always   
-v D:/mongodb/data:/data/db   
-v D:/mongodb/conf:/data/configdb   
-v D:/mongodb/logs:/data/log/   
-e MONGO_INITDB_ROOT_USERNAME=root   
-e  MONGO_INITDB_ROOT_PASSWORD=1234qwer mongo:6.0    
-f /data/configdb/mongod.conf --auth

-d 后台运行

-p 映射端口

--privileged 以root 用户身份在容器内运行

--restart 自动重启容器

-v 容器卷

-e 设置环境

-f 指明配置文件路径 容器以容器内的配置文件启动

--auth mongo开启安全认证,需要账号密码才能访问

容器启动成功

5、查看mongo版本

进入容器实例

docker exec -it cfb571a9a7e4  /bin/bash

输入命令:

mongod -version

docker安装mongodb成功。

6、错误问题

上面我们使用docker安装的mongodb已经可以使用了,但是还有一个问题。如果重新启动容器,会发现容器启动不了。会报错:

{"t":{"$date":"2023-06-29T09:25:48.932+00:00"},"s":"I",  "c":"CONTROL",  "id":20698,   "ctx":"-","msg":"***** SERVER RESTARTED *****"}
{"t":{"$date":"2023-06-29T09:25:48.933+00:00"},"s":"I",  "c":"NETWORK",  "id":4915701, "ctx":"-","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":17},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":17},"outgoing":{"minWireVersion":6,"maxWireVersion":17},"isInternalClient":true}}}
{"t":{"$date":"2023-06-29T09:25:48.935+00:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"-","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
{"t":{"$date":"2023-06-29T09:25:48.935+00:00"},"s":"I",  "c":"NETWORK",  "id":4648601, "ctx":"main","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize."}
{"t":{"$date":"2023-06-29T09:25:48.937+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationDonorService","namespace":"config.tenantMigrationDonors"}}
{"t":{"$date":"2023-06-29T09:25:48.937+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationRecipientService","namespace":"config.tenantMigrationRecipients"}}
{"t":{"$date":"2023-06-29T09:25:48.937+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"ShardSplitDonorService","namespace":"config.tenantSplitDonors"}}
{"t":{"$date":"2023-06-29T09:25:48.937+00:00"},"s":"I",  "c":"CONTROL",  "id":5945603, "ctx":"main","msg":"Multi threading initialized"}
{"t":{"$date":"2023-06-29T09:25:48.938+00:00"},"s":"I",  "c":"CONTROL",  "id":4615611, "ctx":"initandlisten","msg":"MongoDB starting","attr":{"pid":1,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"cfb571a9a7e4"}}
{"t":{"$date":"2023-06-29T09:25:48.939+00:00"},"s":"I",  "c":"CONTROL",  "id":23403,   "ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"6.0.6","gitVersion":"26b4851a412cc8b9b4a18cdb6cd0f9f642e06aa7","openSSLVersion":"OpenSSL 3.0.2 15 Mar 2022","modules":[],"allocator":"tcmalloc","environment":{"distmod":"ubuntu2204","distarch":"x86_64","target_arch":"x86_64"}}}}
{"t":{"$date":"2023-06-29T09:25:48.939+00:00"},"s":"I",  "c":"CONTROL",  "id":51765,   "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Ubuntu","version":"22.04"}}}
{"t":{"$date":"2023-06-29T09:25:48.939+00:00"},"s":"I",  "c":"CONTROL",  "id":21951,   "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"config":"/data/configdb/mongod.conf","net":{"bindIp":"*","port":27017},"replication":{"oplogSizeMB":2048},"security":{"authorization":"enabled"},"storage":{"dbPath":"/data/db"},"systemLog":{"destination":"file","logAppend":true,"path":"/data/log/mongod.log"}}}}
{"t":{"$date":"2023-06-29T09:25:48.940+00:00"},"s":"E",  "c":"NETWORK",  "id":23024,   "ctx":"initandlisten","msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}
{"t":{"$date":"2023-06-29T09:25:48.941+00:00"},"s":"F",  "c":"ASSERT",   "id":23091,   "ctx":"initandlisten","msg":"Fatal assertion","attr":{"msgid":40486,"file":"src/mongo/transport/transport_layer_asio.cpp","line":1126}}
{"t":{"$date":"2023-06-29T09:25:48.941+00:00"},"s":"F",  "c":"ASSERT",   "id":23092,   "ctx":"initandlisten","msg":"\n\n***aborting after fassert() failure\n\n"}

主要看这条日志:

":"E",  "c":"NETWORK",  "id":23024,   "ctx":"initandlisten","msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}

发现 /tmp/mongodb-27017.sock 没有操作权限,导致容器重新启动失败。

解决方法:

删除mongodb-27017.sock,重启mongo服务。

sudo rm /tmp/mongodb-27017.sock

因为使用的docker,容器没有运行进入不了容器,所以无法使用。

所以需要使用容器卷映射tmp 使mongodb-27017文件拥有相应权限

增加容器卷:

 -v D:/mongodb/tmp:/tmp

把之前的容器删除,重新启动一个新容器。由于之前使用了容器卷,所以启动新容器数据也不会消失。完整命令:

docker run -d --name mongodb -p 27017:27017 --privileged=true   
-v D:/mongodb/data:/data/db   
-v D:/mongodb/conf:/data/configdb   
-v D:/mongodb/logs:/data/log/    
-v D:/mongodb/tmp:/tmp   
-e MONGO_INITDB_ROOT_USERNAME=root    
-e  MONGO_INITDB_ROOT_PASSWORD=1234qwer   
mongo:6.0     
-f /data/configdb/mongod.conf --auth

启动容器。然后停止容器再次重新启动。发现没有报错问题解决。

上一篇:Centos7.x系统中Dock

下一篇:Redis持久化

内容
  • 【Oculus Interaction SDK】(六)实体按钮 & 按压交互
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(五)设置不同的抓握手势
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(八)特殊的 UI(曲面效果 & 手指点击)
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(十)在 VR 中使用手势识别
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(三)限制可操作物体的移动 / 旋转
    【Oculus Interact
    2023-12-09
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • cocos2d-x 3.17 推箱子 0.1
    cocos2d-x 3.17 推
    2023-12-07
    简述.sokoban-cocos2dx.此版本为推箱子游戏的基础版本, 后续添加如下功能.人物动画.TiledMap 解
  • 【Oculus Interaction SDK】(十二)Meta Quest 如何开启透视(Passthrough)
    【Oculus Interact
    2023-12-07
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Lua】(一)VSCode 搭建 Lua 开发环境
    【Lua】(一)VSCode 搭
    2023-12-05
    前言.最近在找工作,基本所有的岗位都会问到 Lua(甚至拼 UI 的都要求会 Lua),咱能怎么办呢,咱也只能学啊…….
  • 【Oculus Interaction SDK】(十一)关于手势识别中手势设置的详细信息
    【Oculus Interact
    2023-12-03
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 运动儿童外套,防风保暖,轻便舒适,宝宝运动必备
    运动儿童外套,防风保暖,轻便舒适
    2023-12-06
    运动儿童外套,防风保暖,轻便舒适,宝宝运动必备.运动是孩子们健康成长的重要组成部分,而一件适合运动的外套对于宝宝的运动体
  • 休闲简约短袖衬衫
    休闲简约短袖衬衫
    2023-12-21
    休闲简约短袖衬衫.现代人生活节奏快,休闲简约的穿着成为时尚潮流。短袖衬衫作为经典的休闲单品,一直备受时尚人士的青睐。它舒
  • 精美儿童连衣裙,时尚设计,舒适面料,适合各种场合穿着
    精美儿童连衣裙,时尚设计,舒适面
    2023-12-26
    精美儿童连衣裙,时尚设计,舒适面料,适合各种场合穿着.儿童连衣裙作为孩子们的日常穿着之一,一直备受家长们的关注。精美儿童
  • 优质皮质钱包
    优质皮质钱包
    2024-01-10
    优质皮质钱包.皮质钱包一直以来都是时尚男士和女士们不可或缺的配饰,不仅可以提升整体造型的时尚感,还可以展现个人品味和品质
  • 休闲儿童T恤,可爱印花,柔软透气,让宝宝轻松玩耍舒适自在
    休闲儿童T恤,可爱印花,柔软透气
    2024-01-15
    休闲儿童T恤,给宝宝舒适自在的穿着体验.1. 透气环保的面料,让宝宝轻松玩耍.休闲儿童T恤采用了柔软透气的面料,为宝宝打
  • 暖心家居服套装,柔软舒适,可爱**形象,让宝宝安心入睡
    暖心家居服套装,柔软舒适,可爱*
    2023-12-16
    暖心家居服套装,让宝宝安心入睡.宝宝的睡眠质量对成长发育至关重要,而穿着舒适的家居服对宝宝的睡眠质量有着直接的影响。为了
  • 潮流风衣大衣,彰显都市时尚风采
    潮流风衣大衣,彰显都市时尚风采
    2023-12-16
    潮流风衣大衣,彰显都市时尚风采.潮流风衣大衣一直是时尚界备受追捧的单品之一。它既能为我们遮风挡雨,又能为我们穿出时尚感,
  • 时尚卫衣套装,展现青春活力
    时尚卫衣套装,展现青春活力
    2023-12-11
    时尚卫衣套装,展现青春活力.时尚卫衣套装一直是年轻人衣橱中的必备单品,它不仅可以给人带来舒适的穿着体验,更能展现出青春活
  • 时尚修身连衣裙,展现优雅女性魅力
    时尚修身连衣裙,展现优雅女性魅力
    2023-12-06
    时尚修身连衣裙,展现优雅女性魅力.时尚修身连衣裙一直是女性衣橱里的必备单品,不仅款式多样,而且能够展现出女性的优雅魅力。
  • 修身弹力牛仔裤
    修身弹力牛仔裤
    2023-12-26
    修身弹力牛仔裤:展现你的魅力.一、时尚的必备单品.修身弹力牛仔裤一直都是时尚界的必备单品,它不仅可以展现出个人的魅力,还