在Docker中安装MongoDB
<h2>1.版本选取</h2><div>访问mongodb的镜像仓库地址:https://hub.docker.com/_/mongo?tab=tags&page=1</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/F827ED471CBE44D9B3BF915F9954840E/6888" alt="" width="939" height="695" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/F827ED471CBE44D9B3BF915F9954840E/6888"></div>
<div> </div>
<div>这里选取最新版本进行安装,如果想安装其他的可用版本,可以使用命令“docker search mongo”来查看</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/4ED03D7AEBAF4563B792602C9F25FD14/6886" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/4ED03D7AEBAF4563B792602C9F25FD14/6886"></div>
<div> </div>
<h2>2.拉取最新版本镜像</h2>
<div>这里执行命令"sudo docker pull mongo:latest" 拉取最新版的mongodb镜像文件</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/E3F4F098BC1A48F8B99443B3CAF71555/6887" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/E3F4F098BC1A48F8B99443B3CAF71555/6887"></div>
<div> </div>
<div>等待镜像拉取完成后,通过命令"sudo docker images"查看下拉取的镜像,可以看到,已经成功拉取到了本地</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/796C1374741C47F4B59C93C858438E04/6889" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/796C1374741C47F4B59C93C858438E04/6889"></div>
<div> </div>
<h2>3.开始运行</h2>
<div>创建一个文件夹,用作mongodb的数据目录挂载</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/AA8A3D166737487C96CD7A0A370F7D9B/6891" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/AA8A3D166737487C96CD7A0A370F7D9B/6891"></div>
<div> </div>
<div>运行启动命令“docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo”</div>
<div><img src="https://img2020.cnblogs.com/blog/645287/202005/645287-20200512162016892-1127181293.png" alt=""></div>
<div><span style="background-color: rgba(255, 255, 255, 1)">在上面的命令中,几个命令参数的详细解释如下:</span></div>
<div><span style="background-color: rgba(255, 255, 255, 1)">-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务</span></div>
<div><span style="background-color: rgba(255, 255, 255, 1)">-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录</span></div>
<div><span style="background-color: rgba(255, 255, 255, 1)">--name 为设置该容器的名称</span></div>
<div><span style="background-color: rgba(255, 255, 255, 1)">-d 设置容器以守护进程方式运行</span></div>
<div> </div>
<div>通过命令“docker ps”查看容器启动运行情况</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/AEDD8C358A9D44DBAA16BA7BA0AB686C/6898" alt="" width="1063" height="48" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/AEDD8C358A9D44DBAA16BA7BA0AB686C/6898"></div>
<div>可以看到mongo容器已经成功运行起来了</div>
<div> </div>
<h2>4.使用客户端工具Studio 3T连接mongo</h2>
<div>studiot 3T下载地址:https://studio3t.com/download/</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/7E621AD5376D4D75BA98C75390C0719D/6906" alt="" width="978" height="688" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/7E621AD5376D4D75BA98C75390C0719D/6906"></div>
<div> </div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/BB05EDFE92F5447EA1A368DEA77B7338/6908" alt="" width="322" height="556" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/BB05EDFE92F5447EA1A368DEA77B7338/6908"></div>
<div> </div>
<h2>5.创建mongo用户</h2>
<div>可以看到一个空的mongo数据库,有一个不太完美的地方在于我们的mongo没有任何账户密码,在裸奔,下面我们执行以下语句,创建一个管理员用户,</div>
<div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">db.createUser({
user: 'admin',
pwd: 'Aa123456',
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}); </pre>
</div>
</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/280AFE897C584ECCB01D36E997C4906B/6927" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/280AFE897C584ECCB01D36E997C4906B/6927"></div>
<div> </div>
<h2>6.指定auth重新运行服务</h2>
<div>创建完用户我们就要重新启动mongo服务,并且指定auth</div>
<div>删除已经运行的mongo容器:docker rm -f mongodb</div>
<div>指定验证启动mongo容器:docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth</div>
<div>也就是在之前的启动命令后面加上 --auth:需要密码才能访问容器服务</div>
<div> </div>
<div>此时强行访问,可以看到提示,没有授权</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/62755B6BE10E4C44BFA6F73E9D8C002D/6978" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/62755B6BE10E4C44BFA6F73E9D8C002D/6978"></div>
<div> </div>
<div>这里我们在连接的地方指定一下账户密码</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/F59DCC685A834C429635F9799F6C8198/6947" alt="" width="854" height="588" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/F59DCC685A834C429635F9799F6C8198/6947"></div>
<div> </div>
<div>再来查询,已经正确查询出来之前添加的用户信息</div>
<div><img src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/FC8E0591E02E4E799883EE4F181EF5F2/6986" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/FC8E0591E02E4E799883EE4F181EF5F2/6986"></div>
<div> </div>
<div> </div>
<div>
<h2 style="background-color: inherit; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", Helvetica, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif; color: rgba(57, 57, 57, 1); line-height: 1.75; white-space: pre-wrap; word-break: normal"><span style="background-color: inherit; font-size: 18px">7.创建一个业务数据库和对应的读写账户</span></h2>
<div style="background-color: inherit; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", Helvetica, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif; color: rgba(57, 57, 57, 1); line-height: 1.75; white-space: pre-wrap; word-break: normal">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">use demo_db;
db.createUser({
user: 'dev',
pwd: 'Aa123456',
roles: [ { role: "readWrite", db: "demo_db" } ]
});
</pre>
</div>
<p> </p>
</div>
<div style="background-color: inherit; padding: 5px 0; line-height: 1; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", Helvetica, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif"><img style="cursor: pointer; height: auto; background-color: inherit; display: inline-block; margin-top: 8px; max-width: 100%; width: 552px" src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/3EC395905F7D4BFFB5DDC337142498A1/7018" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/3EC395905F7D4BFFB5DDC337142498A1/7018"></div>
<div style="background-color: inherit; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", Helvetica, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif; color: rgba(57, 57, 57, 1); line-height: 1.75; white-space: pre-wrap; word-break: normal">然后用这个dev账号来登录</div>
<div style="background-color: inherit; padding: 5px 0; line-height: 1; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", Helvetica, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif"><img style="cursor: pointer; height: auto; background-color: inherit; display: inline-block; margin-top: 8px; max-width: 100%; width: 311px" src="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/8BA6A8BB9AF042B7825B5D4B4440F16B/7021" alt="" data-media-type="image" data-original="https://note.youdao.com/yws/public/resource/24f69daff592cd91fe6d86c385feff37/xmlnote/8BA6A8BB9AF042B7825B5D4B4440F16B/7021"></div>
</div>
<div>
<p> </p>
<p> </p>
</div>
<p><img id="uploading_image_94880" src="https://common.cnblogs.com/images/loading.gif" alt=""></p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<div class="sign_pesyhine" style="background: none repeat scroll 0 0 #e7f4ff;
margin: 0 15px 0 0;
padding: 15px;
color: #666;
font-size: 13px;
border: 1px solid #c9ddfa;">
<span>作者:沛山<br></span>
<span>出处: http://www.cnblogs.com/peyshine/</span><br>
<span style="font-size:16px; color:red;">领取资料:下方公众号回复"111",可获取300GB精心准备的编程学习资料,视频教程,电子书</span>
<div>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如果觉得对你有点帮助的话,可以点一下右下角的【推荐】你的鼓励是我的动力。希望能够持续的为大家带来好的技术文章,关注我吧!
</div>
<img style="width:100%; margin-top: 15px;" src="https://images.cnblogs.com/cnblogs_com/peyshine/1771936/o_200523154337qrcode.jpg" alt="https://images.cnblogs.com/cnblogs_com/peyshine/1771936/o_200523154337qrcode.jpg">
</div><br><br>
来源:https://www.cnblogs.com/peyshine/p/12876471.html
頁:
[1]