0

0

搭建基于Docker的MongoDB复制集群环境

php中文网

php中文网

发布时间:2016-06-07 15:53:56

|

1338人浏览过

|

来源于php中文网

原创

一步一步教你搭建基于Docker的MongoDB复制集群环境,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到

一步一步教你搭建基于docker的mongodb复制集群环境

1.安装docker
2.创建MongoDB的Image
3.搭建MongoDB的集群

Docker 是一个开源的应用容器引擎,,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。

1.Ubuntu14.04安装docker
参考文档
参考文档
linuxidc@linuxidc:~$ wget -qO-https://get.docker.com/ | sh
linuxidc@linuxidc:~$ sudo usermod -aG docker pc
linuxidc@linuxidc:~$ sudo reboot

如果是其他(更早)版本的Linux参考
安装Docker使用apt-get命令:
    $ apt-get install docker.io
启动服务和守护进程
    $ service docker.io status
    $ service docker.io start
创建软连接:ln -sf /usr/bin/docker.io /usr/local/bin/docker
    如没有提示错误则说明你已经在Ubuntu14.04上面快速安装Docker成功了。

卸载Uninstallation
    $ sudo apt-get purge lxc-docker
To uninstall the Docker package and dependencies that are no longer needed:
    $ sudo apt-get autoremove --purge lxc-docker

2.创建MongoDB的Image
linuxidc@linuxidc:~$ docker pull ubuntu:14.04
linuxidc@linuxidc:~$ sudo docker images
REPOSITORY          TAG                IMAGE ID            CREATED            VIRTUAL SIZE
ubuntu              14.04              6d4946999d4f        3 weeks ago        188.3 MB
linuxidc@linuxidc:~$

编写dockerfile
linuxidc@linuxidc:~$ vim Dockerfile

Dockerfile内容如下

#VERSION 0.1.0
FROM ubuntu:14.04

#Install some
RUN apt-get clean
RUN apt-get update
RUN apt-get install -y g++
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd

#open port 22
EXPOSE 22
#CMD ["/usr/sbin/sshd", "-D"]

萝卜简历
萝卜简历

免费在线AI简历制作工具,帮助求职者轻松完成简历制作。

下载


RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
ENV MONGO_MAJOR 3.0
RUN echo "deb wheezy/mongodb-org/$MONGO_MAJOR main" > /etc/apt/sources.list.d/mongodb-org.list
# Install MongoDB
RUN apt-get update
RUN sudo apt-get install -y mongodb-org=3.0.4 mongodb-org-server=3.0.4 mongodb-org-shell=3.0.4 mongodb-org-mongos=3.0.4 mongodb-org-tools=3.0.4

# Create the MongoDB data directory
RUN mkdir -p /data/db

#open port 27017
EXPOSE 27017
ENTRYPOINT ["usr/bin/mongod"]

写好了Dockerfile 就可以生成带有mongodb的image :后面是flag .表示当前路径的Dockerfile
linuxidc@linuxidc:~$ sudo docker build -t pc/mongos:master .

再次查看一下docker image
linuxidc@linuxidc:~$ sudo docker images
REPOSITORY          TAG                IMAGE ID            CREATED            VIRTUAL SIZE
pc/mongod          master              6fcc1b62e091        54 minutes ago      542 MB
ubuntu              14.04              6d4946999d4f        4 weeks ago        188.3 MB

3.搭建MongoDB的集群
下面我们就启动3个基于mongod:master的container

linuxidc@linuxidc:~$ sudo docker run --name rs_server1 -p 21117:27017 -d pc/mongod:master --noprealloc --smallfiles --replSet rs1
操作成功之后返回的就是容器的id
6306bf3057f8ebca79d7bd130ba35e260da7177925a85a1c9a3d5d21c551e0aa

后面两个容器同理
linuxidc@linuxidc:~$ sudo docker run --name rs_server2 -p 22117:27017 -d pc/mongod:master --noprealloc --smallfiles --replSet rs1
b60c977313e1b6143c0346e1c6138c3ad4831818f6349fc98181fa76edbd2eff
linuxidc@linuxidc:~$ sudo docker run --name rs_server3 -p 23117:27017 -d pc/mongod:master --noprealloc --smallfiles --replSet rs1
cebebc142a1bfed7162a06441ad841f4173c3f71c97f3dded8d5c3833ea9fa78

选择一个容器执行一下ifconfig 查看ip 一般都是同网段中递增的
linuxidc@linuxidc:~$ sudo docker exec 6306bf3057f8ebca79d7bd130ba35e260da7177925a85a1c9a3d5d21c551e0aa ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:01 
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:1/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2124124 (2.1 KB)  TX bytes:828 (828.0 B)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

可以想象 3个容器的ip应该是172.17.0.1 172.17.0.2 172.17.0.3

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

ThinkPHP6.x 微实战--十天技能课堂
ThinkPHP6.x 微实战--十天技能课堂

共26课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号