帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Mongodb  mongod  DOC  图像  mongo  BIT  Docker  DOCK  
Bitnami MongoDB Docker Image http://bitnami.com/docker — Edit

  • 源代码名称:bitnami-docker-mongodb
  • 源代码网址:http://www.github.com/bitnami/bitnami-docker-mongodb
  • bitnami-docker-mongodb源代码文档
  • bitnami-docker-mongodb源代码下载
  • Git URL:
    git://www.github.com/bitnami/bitnami-docker-mongodb.git
  • Git Clone代码到本地:
    git clone http://www.github.com/bitnami/bitnami-docker-mongodb
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/bitnami/bitnami-docker-mongodb
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • CircleCISlack

    什么是 MongoDB?

    是一个跨平台文档定向数据库。 基于 NoSQL 数据库,MongoDB避免了传统的基于表的关系数据库结构,使用动态模式的文档集成。

    ;DR ;
    $ docker run --name mongodb bitnami/mongodb:latest

    Docker 组成

    $ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-mongodb/master/docker-compose.yml > docker-compose.yml
    $ docker-compose up -d
    为什么使用Bitnami映像?
    • Bitnami紧密跟踪上游源代码更改,并使用我们的自动化系统及时发布这里映像的新版本。
    • 使用Bitnami图像,最新的Bug 修复和功能可以尽快得到。
    • 使用Bitnami容器,虚拟机和云映像使用相同的组件和配置方法- 使基于项目需求的格式之间易于实现 switch 。
    • 在CircleCI上构建Bitnami映像,并自动推送到 Docker 集线器。
    • 我们的所有图像都基于 minideb 基于极简的Debian容器图像,它提供了一个小基础容器图像和一个主流的linux发行版。
    得到这个图像

    获取Bitnami映像的推荐方法是从 Docker-Hub 注册中心提取预构建映像。

    $ docker pull bitnami/mongodb:latest

    要使用特定版本,可以提取带版本控制的标签。 你可以在 Docker-Hub 注册表中查看可用版本的列表。

    $ docker pull bitnami/mongodb:[TAG]

    如果你愿意,你也可以自己构建图像。

    $ docker build -t bitnami/mongodb:latest https://github.com/bitnami/bitnami-docker-mongodb.git
    保存数据库

    如果删除容器,所有数据和配置将丢失,并且下次运行映像时,数据库将重新初始化。 为了避免这些数据丢失,你应该挂载一个容器,即使在容器移除后仍然存在。

    为了持久性,你应该在 /bitnami 路径上安装一个目录。 如果挂载的目录为空,它将在第一次运行时初始化。

    $ docker run 
     -v/path/to/mongodb-persistence:/bitnami 
     bitnami/mongodb:latest

    或者使用 Docker 撰写:

    version: '2'services:
     mongodb:
     image: 'bitnami/mongodb:latest'ports:
     - "27017:27017"volumes:
     - /path/to/mongodb-persistence:/bitnami
    连接到其他容器

    使用容器networking可以轻松地访问在容器内运行的MongoDB服务器,你的应用程序容器可以很容易地访问它。

    连接到同一个网络的容器可以使用容器 NAME 作为主机名彼此通信。

    使用 命令行

    在这个例子中,我们将创建一个MongoDB客户端实例,它将连接到与客户端在同一 Docker 网络上运行的服务器实例。

    步骤 1: 创建网络

    $ docker network create app-tier --driver bridge

    步骤1: 启动MongoDB服务器实例

    使用 docker run 命令的--network app-tier 参数将MongoDB容器附加到 app-tier 网络。

    $ docker run -d --name mongodb-server 
     --network app-tier 
     bitnami/mongodb:latest

    步骤 3: 启动你的MongoDB客户端实例

    最后,我们创建一个新的容器实例来启动MongoDB客户端并连接到上一步中创建的服务器:

    $ docker run -it --rm 
     --network app-tier 
     bitnami/mongodb:latest mongo --host mongodb-server

    使用 Docker 组合

    如果没有指定,Docker 将自动设置一个新网络并将所有已经部署的服务连接到该网络。 但是,我们将显式定义一个名为 app-tier的新 bridge 网络。 在这个示例中,假设你希望从你自己的自定义应用程序镜像连接到MongoDB服务器,该映像由服务 NAME myapp 在下面的Fragment中标识。

    version: '2'networks:
     app-tier:
     driver: bridgeservices:
     mongodb:
     image: 'bitnami/mongodb:latest'networks:
     - app-tiermyapp:
     image: 'YOUR_APPLICATION_IMAGE'networks:
     - app-tier

    重要:

    • 请用应用程序映像更新上代码段中的YOUR_APPLICATION_IMAGE_ 占位符
    • 在应用程序容器中,使用主机名 mongodb 连接到MongoDB服务器

    使用以下命令启动容器:

    $ docker-compose up -d
    配置

    首次运行时设置 root-密码

    第一次运行 MONGODB_ROOT_PASSWORD 环境变量时,将 root 用户的密码设置为服务器上的MONGODB_ROOT_PASSWORD 和启用的身份验证。

    $ docker run --name mongodb 
     -e MONGODB_ROOT_PASSWORD=password123 bitnami/mongodb:latest

    或者使用 Docker 撰写:

    version: '2'services:
     mongodb:
     image: 'bitnami/mongodb:latest'ports:
     - "27017:27017"environment:
     - MONGODB_ROOT_PASSWORD=password123

    配置 root 用户对MongoDB服务器具有完全管理访问权限。 如果未指定 MONGODB_ROOT_PASSWORD,则服务器允许未经过身份验证和无限制的访问。

    首次运行时创建用户和数据库

    首次启动容器时,你可以创建具有对数据库的限制访问权限的用户。 为此,请提供 MONGODB_USERNAMEMONGO_PASSWORDMONGODB_DATABASE 环境变量 。

    $ docker run --name mongodb 
     -e MONGODB_USERNAME=my_user -e MONGODB_PASSWORD=password123 
     -e MONGODB_DATABASE=my_database bitnami/mongodb:latest

    或者使用 Docker 撰写:

    version: '2'services:
     mongodb:
     image: 'bitnami/mongodb:latest'ports:
     - "27017:27017"environment:
     - MONGODB_USERNAME=my_user - MONGODB_PASSWORD=password123 - MONGODB_DATABASE=my_database

    注意:用户创建可以在MongoDB服务器上启用身份验证,因此不允许任何非用户进行身份验证。

    设置复制

    使用以下,可以轻松使用 Bitnami MongoDB Docker 映像设置复制插件集群:

    • MONGODB_REPLICA_SET_MODE: 复制模式可能的值 primary/secondary/arbiter 。 无默认值。
    • MONGODB_REPLICA_SET_NAME: MongoDB副本集 NAME 。 默认值:replicaset
    • MONGODB_PRIMARY_HOST: MongoDB主主机无默认值。
    • MONGODB_PRIMARY_PORT_NUMBER: MongoDB主端口默认值: 27017
    • MONGODB_ADVERTISED_HOSTNAME: MongoDB公布主机名没有默认值。 建议在遇到临时ip问题时传递这里环境变量。 设置of使复本集的节点配置为主机名而不是机器 IP 。

    仅用于身份验证:

    • MONGODB_REPLICA_SET_KEY: MongoDB副本集密钥。 长度应为 GREATER 于 5个字符,不应包含任何特殊字符。 对于所有节点都需要。无默认值。
    • MONGODB_ROOT_PASSWORD: MongoDB root 密码无默认值。 仅用于主 node 。
    • MONGODB_PRIMARY_ROOT_PASSWORD: MongoDB主 root 密码。 无默认值。仅用于辅助节点和aribters节点。

    在复制群集中,可以以有一个主 node 。零或者更多辅助节点和零个或者一个仲裁器 node 。

    注释: 副本集sceneraio上的节点总数不能高于 8 ( 1,6辅助和 1仲裁器)

    步骤 1: 创建复制主服务器

    第一步是启动MongoDB主程序。

    $ docker run --name mongodb-primary 
     -e MONGODB_REPLICA_SET_MODE=primary 
     bitnami/mongodb:latest

    在上面的命令中,容器使用 MONGODB_REPLICA_SET_MODE 参数配置为 primary

    步骤1: 创建复制辅助服务器

    接下来我们启动一个MongoDB辅助容器。

    $ docker run --name mongodb-secondary 
     --link mongodb-primary:primary 
     -e MONGODB_REPLICA_SET_MODE=secondary 
     -e MONGODB_PRIMARY_HOST=primary 
     -e MONGODB_PRIMARY_PORT_NUMBER=27017 
     bitnami/mongodb:latest

    在上面的命令中,容器使用 MONGODB_REPLICA_SET_MODE 参数配置为 secondary 。 使用 MONGODB_PRIMARY_HOSTMONGODB_PRIMARY_PORT_NUMBER 参数连接并使用MongoDB主参数。

    步骤:创建复制仲裁器 node

    最后我们启动一个MongoDB仲裁容器。

    $ docker run --name mongodb-arbiter 
     --link mongodb-primary:primary 
     -e MONGODB_REPLICA_SET_MODE=arbiter 
     -e MONGODB_PRIMARY_HOST=primary 
     -e MONGODB_PRIMARY_PORT_NUMBER=27017 
     bitnami/mongodb:latest

    在上面的命令中,容器使用 MONGODB_REPLICA_SET_MODE 参数配置为 arbiter 。 使用 MONGODB_PRIMARY_HOSTMONGODB_PRIMARY_PORT_NUMBER 参数连接并使用MongoDB主参数。

    现在,你有了3 个 node MongoDB复制集群,可以通过添加/删除secondarys来对它的进行。

    使用 Docker 编写replicaset可以通过以下方式设置:

    version: '2'services:
     mongodb-primary:
     image: 'bitnami/mongodb:latest'environment:
     - MONGODB_REPLICA_SET_MODE=primaryvolumes:
     - 'mongodb_master_data:/bitnami'mongodb-secondary:
     image: 'bitnami/mongodb:latest'depends_on:
     - mongodb-primaryenvironment:
     - MONGODB_REPLICA_SET_MODE=secondary - MONGODB_PRIMARY_HOST=mongodb-primary - MONGODB_PRIMARY_PORT_NUMBER=27017mongodb-arbiter:
     image: 'bitnami/mongodb:latest'depends_on:
     - mongodb-primaryenvironment:
     - MONGODB_REPLICA_SET_MODE=arbiter - MONGODB_PRIMARY_HOST=mongodb-primary - MONGODB_PRIMARY_PORT_NUMBER=27017volumes:
     mongodb_master_data:
     driver: local

    或者,如果你想使用认证设置 replicaset,你可以使用以下 file:

    version: '2'services:
     mongodb-primary:
     image: 'bitnami/mongodb:latest'environment:
     - MONGODB_REPLICA_SET_MODE=primary - MONGODB_ROOT_PASSWORD=password123 - MONGODB_REPLICA_SET_KEY=replicasetkey123volumes:
     - 'mongodb_master_data:/bitnami'mongodb-secondary:
     image: 'bitnami/mongodb:latest'depends_on:
     - mongodb-primaryenvironment:
     - MONGODB_REPLICA_SET_MODE=secondary - MONGODB_PRIMARY_HOST=mongodb-primary - MONGODB_PRIMARY_PORT_NUMBER=27017 - MONGODB_PRIMARY_ROOT_PASSWORD=password123 - MONGODB_REPLICA_SET_KEY=replicasetkey123mongodb-arbiter:
     image: 'bitnami/mongodb:latest'depends_on:
     - mongodb-primaryenvironment:
     - MONGODB_REPLICA_SET_MODE=arbiter - MONGODB_PRIMARY_HOST=mongodb-primary - MONGODB_PRIMARY_PORT_NUMBER=27017 - MONGODB_PRIMARY_ROOT_PASSWORD=password123 - MONGODB_REPLICA_SET_KEY=replicasetkey123volumes:
     mongodb_master_data:
     driver: local

    使用以下方法缩放辅助节点的数量:

    $ docker-compose scale mongodb-primary=1 mongodb-secondary=3 mongodb-arbiter=1

    上面的命令将辅助节点的数量扩展到 3 。 你可以按同样的方式缩小比例。

    注意 : 你不应该向上或者向下扩展主节点的数量。 始终只有一个主 node 运行。

    如何配置副本集?

    副本集配置( 主。次或者仲裁) 中有三个不同的角色。 每个角色都以不同的方式配置:

    主 node 配置:

    使用 rs.initiate() 命令和一些配置选项启动副本集,以强制主节点成为主节点。 基本上,优先级从默认的( 1 ) 增加到 5. 要验证主代码实际上是主要的,我们使用 db.isMaster().ismaster 命令来验证它。

    主 node 有一个附加卷,因此只要存在卷,就可以在部署之间保留数据。

    这里外,主 node 初始化脚本将检查 /bitnami/mongodb 文件夹中是否存在一个 .initialized 文件,以确定它是否已经经初始化。

    如果主要已经被杀死,卷被删除,以便在同一副本集中启动该容器,那么它的他成员已经经知道了。

    次 node 配置:

    一旦主 node 启动并运行,我们就可以开始添加辅助节点( 和仲裁器) 。 为此,辅助 node 连接主 node,并将它的自身添加为具有命令 rs.add(SECONDARY_NODE_HOST)的辅助 node 。

    添加辅助节点后,我们验证了它们已经通过执行 rs.status().members 成功地添加,以查看它们是否出现在列表中。

    仲裁 node 配置:

    最后,除了添加到副本集的命令是 rs.addArb(ARBITER_NODE_HOST) 之外,arbiters遵循与辅助节点相同的过程。 在主节点和辅助节点的总和为偶数时,应添加仲裁器。

    配置文件

    图像在 /bitnami/mongodb/conf/ 中查找配置。 如中提到的持久化数据库一样,可以在处装载卷,并复制/编辑/path/to/mongodb-persistence/mongodb/conf/ 默认配置将被填充到 conf/ 目录,如果它是空的。

    步骤 1: 运行MongoDB映像

    运行MongoDB映像,从主机挂载一个目录。

    $ docker run --name mongodb -v/path/to/mongodb-persistence:/bitnami bitnami/mongodb:latest

    或者使用 Docker 撰写:

    version: '2'services:
     mongodb:
     image: 'bitnami/mongodb:latest'ports:
     - "27017:27017"volumes:
     - /path/to/mongodb-persistence:/bitnami

    步骤 2: 编辑配置

    使用你喜欢的编辑器编辑主机上的配置。

    $ vi/path/to/mongodb-persistence/mongodb/conf/mongodb.conf

    步骤 3: 重新启动 MongoDB

    更改配置后,重新启动你的MongoDB容器以使更改生效。

    $ docker restart mongodb

    或者使用 Docker 撰写:

    $ docker-compose restart mongodb

    参考配置文件选项手册以获得MongoDB配置选项的完整列表。

    日志记录

    Bitnami MongoDB Docker 映像将容器日志发送到 stdout 。 要查看日志:

    $ docker logs mongodb

    或者使用 Docker 撰写:

    $ docker-compose logs mongodb

    你可以使用 --log-driver 选项配置容器的日志记录驱动程序,如果你想使用不同的容器日志。 在默认配置 Docker 中,使用 json-file 驱动程序。

    维护

    升级这里映像

    Bitnami提供了MongoDB的内置版本,包括安全补丁,这些补丁在它们被。 我们建议你按照以下步骤升级容器。

    步骤 1: 获取更新后的映像

    $ docker pull bitnami/mongodb:latest

    或者,如果使用 Docker 组合,则将图像属性的值更新为 bitnami/mongodb:latest

    步骤 2: 停止并备份当前正在运行的容器

    使用命令停止当前正在运行的容器

    $ docker stop mongodb

    或者使用 Docker 撰写:

    $ docker-compose stop mongodb

    接下来,使用以下方法获取持久卷 /path/to/mongodb-persistence的快照:

    $ rsync -a/path/to/mongodb-persistence/path/to/mongodb-persistence.bkp.$(date +%Y%m%d-%H.%M.%S)

    如果升级失败,则可以使用这里快照还原数据库状态。

    步骤 3: 删除当前正在运行的容器

    $ docker rm -v mongodb

    或者使用 Docker 撰写:

    $ docker-compose rm -v mongodb

    步骤 4: 运行新映像

    从新图像创建容器。

    $ docker run --name mongodb bitnami/mongodb:latest

    或者使用 Docker 撰写:

    $ docker-compose start mongodb
    便笺更改

    3.2.7 -r5

    • MONGODB_USER 参数已经被重命名为 MONGODB_USERNAME

    3.2.6 -r0

    • 所有卷已经在 /bitnami/mongodb 处合并。 现在,你只需要在 /bitnami/mongodb 上装载一个单独的。
    • 日志总是发送到 stdout,并且不再在卷中收集。

    我们希望你能为这个容器提供帮助。 可以通过创建一个问题来请求新特性,或者通过你的贡献提交请求请求。

    问题

    如果遇到运行这里容器的问题,则可以文件 issue 。 要提供更好的支持,请确保在你的问题中包含以下信息:

    • 主机操作系统和版本
    • Docker 版本( docker version )
    • docker info 输出
    • 这里容器的版本( 容器内的echo $BITNAMI_IMAGE_VERSION )
    • 用于运行容器和任何相关输出( 屏蔽任何敏感信息)的命令
    社区

    大多数实时通信发生在 #containers 通道的通道中;你可以在 slack.oss. bitnami.com 上注册。

    讨论在 bitnami-oss.slackarchive.io 存档。

    许可证

    版权所有( c ) 2015 -2018 Bitnami

    在Apache许可以证下许可以证版本 2.0 ("许可以证") ;你可以能不使用这里文件,除了符合许可以证。 你可以获得许可证的副本在*

    http://www.apache.org/licenses/LICENSE-2.0

    在规定的法律或者书面许可下,在许可条款下分发的软件在不保证任何种类的担保或者条件的前提下分发,或者明示或者隐含。 查看许可协议下特定语言的许可权限和限制的许可证。



    文章标签:图像  DOC  HTTP  Docker  BIT  DOCK  mongo  Mongodb  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语