Code前端首页关于Code前端联系我们

安装 Docker MongoDB 学习教程

terry 2年前 (2023-09-26) 阅读数 48 #后端开发

说明

在此示例中,我们将学习如何构建预安装了 MongoDB 的 Docker 映像。我们还将了解如何将映像推送到 Docker Hub 注册表以与其他人共享。

使用 Docker 容器部署 MongoDB 将为您带来许多好处,例如:

  • 易于维护且高度可配置的 MongoDB 实例
  • 在毫秒内即可启动并开始工作
  • 基于全局访问共享镜像

为 MongoDB 创建一个 Dockerfile

让我们创建一个 Dockerfile 并开始构建它:

$ nano Dockerfile

虽然是可选的,但在一开始 Dockerfile 那里的评论很方便地解释了其目的:

# Dockerizing MongoDB: Dockerfile for building MongoDB images
# Based on ubuntu:latest, installs MongoDB following the instructions from:
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

提示:Docker 文件非常灵活。但它们遵循一定的格式。第一个元素指定镜像的名称,这里是 MongoDB docker 应用程序的父镜像。

我们将使用 Docker Hub 中最新版本的 Ubuntu 镜像来构建镜像。

# Format: FROM    repository[:version]
FROM       ubuntu:latest

继续,我们将在Dockerfile中指定MAINTAINER

# Format: MAINTAINER Name <email@addr.ess>
MAINTAINER M.Y. Name <myname@addr.ess>
</myname@addr.ess></email@addr.ess>

注意:虽然Ubuntu系统已经有MongoDB包,但它们可能已经过时,所以在这种情况下我们将使用官方的MongoDB包。

我们将开始导入MongoDB的GPG公钥。我们还将为 MongoDB 库创建一个包管理器

# Installation:
# Import MongoDB public GPG key AND create a MongoDB list file
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list

在初步准备之后,我们将更新我们的包并安装 MongoDB。

# Update apt-get sources AND install MongoDB
RUN apt-get update
RUN apt-get install -y -q mongodb-org

提示:您可以安装特定版本的 MongoDB,其版本使用所需的软件包列表,例如:RUN apt-get install -y -q mongodb-org=2.6.1 mongodb-org-server=2.6。 1 mongodb -org -shell=2.6.1 mongodb-org-mongos=2.6.1 mongodb-org-tools=2.6.1

MongoDB需要一个数据目录,我们在最后一步做

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

最后我们设置 ENTRYPOINT ,告诉 Docker 如何在我们的 MongoDB 镜像容器内运行 mongod。我们将使用命令 EXPOSE 来指定端口:

# Expose port 27017 from the container to the host
EXPOSE 27017

# Set usr/bin/mongod as the dockerized entry-point application
ENTRYPOINT usr/bin/mongod

现在保存我们的文件并构建我们的映像。

构建 MongoDB Docker 镜像

我们可以使用Dockerfile来构建我们的 MongoDB 镜像。除非是实验,否则最好使用 --tag docker build 参数来标记 docker 镜像。

# Format: sudo docker build --tag/-t / .
# Example:
$ sudo docker build --tag my/repo .

当我们发出此命令时,Docker将通过Dockerfile构建镜像。最终图像将被标记为 my/repo

将 MongoDB 镜像推送到 Docker Hub

docker push该命令将所有镜像推送到 Docker Hub,您可以在 Docker Hub 中托管和共享这些镜像。为此,您需要登录:

# Log-in
$ sudo docker login
Username:
..

# Push the image
# Format: sudo docker push /
$ sudo docker push my/repo
The push refers to a repository [my/repo] (len: 1)
Sending image list
Pushing repository my/repo (1 tags)
..

使用 MongoDB 映像

使用我们创建的 MongoDB 映像,我们可以在守护程序模式下运行一个或多个 MongoDB。

# Basic way
# Usage: sudo docker run --name  -d /
$ sudo docker run --name mongo_instance_001 -d my/repo

# Dockerized MongoDB, lean and mean!
# Usage: sudo docker run --name  -d / --noprealloc --smallfiles
$ sudo docker run --name mongo_instance_001 -d my/repo --noprealloc --smallfiles

# Checking out the logs of a MongoDB container
# Usage: sudo docker logs 
$ sudo docker logs mongo_instance_001

# Playing with MongoDB
# Usage: mongo --port  
$ mongo --port 12345

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门