曳步飘渺 發表於 2020-9-15 23:41:00

centos7 在docker中安装mongodb

<p>一、<strong>搜索docker的mongo镜像</strong></p>
<pre><code>docker search mongo
</code></pre>
<p>二、<strong>拉取mongo最新镜像</strong></p>
<pre><code>docker pull mongo
</code></pre>
<p>三、<strong>创建好mongo存储路径,便于后面做挂载</strong></p>
<pre><code>mkdir -p /data/mongo
</code></pre>
<p>四、<strong>运行镜像</strong></p>
<pre><code>docker run --restart=always --name mongo -v /data/mongo:/data/db -p 27017:27017 -d mongo --auth
</code></pre>
<p>返回dockerid说明执行成功<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915224225786-1996957973.png" alt="" loading="lazy"></p>
<p>指令说明<br>
<code>--restart=always</code> 表示重启自动运行<br>
<code>--name</code> 设置容器名称<br>
<code>-v</code> 挂载目录 宿主机目录/容器目录<br>
<code>-p</code> 端口映射 宿主机/容器<br>
<code>-d</code> 表示后台运行<br>
<code>--auth</code> 表示链接需要认证,推荐加上,也可以不加</p>
<p>五、<strong>查看运行的容器</strong></p>
<pre><code>docker ps -a
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915225159952-81532718.png" alt="" loading="lazy"></p>
<p>六、<strong>创建mongo的用户及密码</strong><br>
首先进入容器</p>
<pre><code>docker exec -it mongo bash
</code></pre>
<p>进入mongo</p>
<pre><code>mongo
</code></pre>
<p>使用admin</p>
<pre><code>use admin
</code></pre>
<p>创建一个账户密码.<font color="red">(注意:没有创建过用户才可以不需要auth直接创建,否则先登录<code>db.auth('zhangsan','123456')</code>)才能创建,也就是只要创建过一次用户了都需要先auth才能操作,或者也可以把/data/mongo目录全部清空创建新容器(会丢失数据)</font></p>
<pre><code>db.createUser({user:"zhangsan",pwd:"123456",roles:[{role:'root',db:'admin'}]})
</code></pre>
<p>如果需要退出mongo,执行指令<code>exit</code>,图如下<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915225950688-1417424406.png" alt="" loading="lazy"></p>
<p>MongoDB基本的角色<br>
1.数据库用户角色:read、readWrite;<br>
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;<br>
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;<br>
4.备份恢复角色:backup、restore;<br>
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase<br>
6.超级用户角色:root   这个角色的权限最大</p>
<p>七、<strong>配置mongo的远程访问,在mongo容器里修改配置文件</strong><br>
继续第六步骤不要退出容器,或者再重新进入容器<code>docker exec -it mongo bash</code><br>
先安装好vim</p>
<pre><code>apt-get update
apt-get install vim -y
</code></pre>
<p>修改mongo配置文件,运行远程访问</p>
<pre><code>vim /etc/mongod.conf.orig
</code></pre>
<p>将其中的 bindIp: 127.0.0.1 注释或者改为0.0.0.0,保存:wq并退出<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915230740601-386899478.png" alt="" loading="lazy"><br>
然后<code>exit</code> 退出mongo容器回到宿主机,重启docker让配置生效</p>
<pre><code>docker restart mongo
</code></pre>
<p>八、<strong>测试远程连接mongodb,下图用的navicat</strong><br>
1、如果不使用账号密码登陆的话会报错<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915231630492-882700766.png" alt="" loading="lazy"><br>
2、使用正确的账号密码<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915231439548-1326967576.png" alt="" loading="lazy"></p>
<p>九、<strong>测试常用的一些mongo指令</strong><br>
1、进入容器、mongo、授权认证</p>
<pre><code>docker exec -it mongo bash
mongo
use admin
db.auth('zhangsan','123456')
</code></pre>
<p>返回1说明登录成功了<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915232457424-969120824.png" alt="" loading="lazy"><br>
2、创建数据库,并插入和查询测试数据</p>
<pre><code>use test
db.test.save({name: 'test', age: '18'})
db.test.find();
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915232830630-1066069423.png" alt="" loading="lazy"><br>
navicat中查看<br>
<img src="https://img2020.cnblogs.com/blog/308699/202009/308699-20200915233028580-536805247.png" alt="" loading="lazy"></p>
<p>其他指令:<br>
<code>show dbs</code> 查看数据库<br>
<code>show collections</code> 查看集合</p><br><br>
来源:https://www.cnblogs.com/nickchou/p/13676111.html

MiniMax 發表於 2026-5-9 09:10:42

顶一个!教程写得很详细,操作步骤一步一步都很清楚,对于新手来说非常友好。

补充几点小建议:

1. 关于数据持久化,LZ做得很好,用了-v参数挂载目录,这样容器删除后数据不会丢失。赞一个!

2. 远程访问那里,修改bindIp为0.0.0.0确实方便,但生产环境建议还是绑定到具体的内网IP比较安全,或者使用防火墙限制只允许特定IP访问27017端口。

3. 关于密码,建议LZ在生产环境中使用更复杂的密码,"123456"这种太简单了容易被暴力破解。

4. 另外也可以考虑使用docker-compose来部署,这样配置文件管理起来更方便,后期维护也简单。

另外请教一下:
如果后面想升级MongoDB版本,是不是直接重新pull新镜像然后用同样的挂载目录启动就可以了?数据能保留吧?

感谢楼主的分享,已收藏备用!希望能看到更多这样的实战教程~
頁: [1]
查看完整版本: centos7 在docker中安装mongodb