记录docker中安装mongodb的过程。一般采用mongodb镜像直接安装。我采用的是创建一个docker容器,在容器中安装mongdb。
1、创建centos7容器。安装docker和下载centos7镜像的过程省略,前面介绍docker的时候已经写过。创建容器命令为
docker run -tid -p 27018:27017 3db94df3e006 /usr/sbin/init 。读者请执行文字上的命令,如果执行下图的创建容器的命令会很麻烦,后面第7步会有说明。
在这里插入图片描述
2、对上面创建的容器重命名,启动容器,并将下载好的mongodb复制到想要安装的目录
在这里插入图片描述
3、进入容器,解压mongdb压缩文件
在这里插入图片描述
4、由于解压后的文件夹名字太长,这里重命名一下。在这里插入图片描述
5、由于解压后的mongdodb只有bin文件夹,我们这里增加一个配置文件,每次启动读取指定配置文件就可以,而不用每次启动指定一堆参数。下图的mongodb.conf文件是需要用户自己创建的。一定要创建dbpath和logpath指定的目录路径的文件夹,否则无法启动! mongodb不会自动创建文件夹和文件。
mkdir -p /home/mongodb/data/db
mkdir -p /home/mongodb/data/logs
touch mongodb.logs
在这里插入图片描述
6、启动mongodb。如果没有顺利启动,尝试检查mongodb.conf中指定创建的文件夹和文件是否已经正确创建。
在这里插入图片描述
7、到这里,mongodb就启动了,但是工具还是连不上的,因为我创建容器的时候没有进行端口映射,还需要进行本地服务器与docker容器的端口进行映射。如果读者按照的第一步说的命令,就不会存在这个问题了。前提工作:由于新创建的linux容器,所以这里需要安装工具包,否则ifconfig命令等用不了。命令:yum install net-tools.x86_64 我新创建的容器的ip是172.17.0.2。记得要用exit命令退出容器后在服务器中执行下面的映射命令。 由于我27017端口已使用,所以这里把容器的27017端口映射到服务器的27018端口这里是一连串的命令,且暂时我也不知道该如何永久保存。以下方式并不推荐。
iptables -A DOCKER ! -i docker0 -o docker0 -p tcp --dport 27017 -d 172.17.0.2 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 27017 -s 172.17.0.2 -d 172.17.0.2 -j MASQUERADE
iptables -t nat -A DOCKER ! -i dokcer0 -p tcp --dport 27018 -j DNAT --to-destination 172.17.0.2:27017

拓展:
a、查看iptables表中的Docker规则,并显示行号
iptables -t nat -vnL DOCKER --line-number
b、删除docker中的规则
iptables -t nat -D DOCKER 4 其中4表示行号,删除指定行规则

8、工具连接。
在这里插入图片描述
提醒:创建容器的时候最好还是指定ip端口映射,对应着我上面的第一步。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐