利用docker-compose搭建单机mongodb复制集上

2020-03-07linuxmongodb

docker-compose介绍

docker-compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

此篇文章使用docker-compose步骤为:

  • 安装 docker-compose

安装docker-compose 有许多方式,这里通过python3的pip安装docker-compose

pip install https://mirrors.aliyun.com/pypi/simple/ docker-compose

这里使用阿里云源,以加速下载速度

  • 编写docker-compose配置文件

创建文件

mkdir mongorst
touch docker-compose.yml

因为配置文件太长,附到文章末尾

这里创建未开启验证的7个节点,

提前创建用于存放数据目录

mkdir /data/mongo{1,2,3,4,5,6,7}/

其中:

字段含义
image镜像
hostname主机名
expose暴露端口
ports把端口映射到宿主机上
container_name容器名称
volumes把容器数据挂载到宿主机上
command覆盖容器启动的默认命令
net设置网络模式
  • 启动所有容器

直接用docker-compose工具,一建启动配置文件定义的所有容器

docker-compose up -d

其中:

|字段|含义| |up|启动并创建容器| |d|交给后台启动|

启动

查看运行容器

docker-compose ps

查看运行容器

docker-compose配置文件

mongo1:
  image: mongo:latest
  hostname: mongo1
  expose:
    - 27017
  ports:
    - "27017:27017"
  container_name: mongo1
  volumes:
    - /data/mongodb1/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo2:
  image: mongo:latest
  hostname: mongo2
  expose:
    - 27017
  container_name: mongo2
  volumes:
    - /data/mongodb2/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo3:
  image: mongo:latest
  hostname: mongo3
  expose:
    - 27017
  container_name: mongo3
  volumes:
    - /data/mongodb3/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo4:
  image: mongo:latest
  hostname: mongo4
  expose:
    - 27017
  container_name: mongo4
  volumes:
    - /data/mongodb4/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo5:
  image: mongo:latest
  hostname: mongo5
  expose:
    - 27017
  container_name: mongo5
  volumes:
    - /data/mongodb5/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo6:
  image: mongo:latest
  hostname: mongo6
  expose:
    - 27017
  container_name: mongo6
  volumes:
    - /data/mongodb6/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

mongo7:
  image: mongo:latest
  hostname: mongo7
  expose:
    - 27017
  container_name: mongo7
  volumes:
    - /data/mongodb7/:/data/db
  command: mongod --replSet mongoset
  net: "mongonet"

Last Updated 8/21/2026, 3:57:15 AM