Docker安装MongoDB及使用方法详解
MongoDB是一个开源的NoSQL数据库管理系统,可以处理大量的数据存储和高度可扩展性,使其成为许多企业的喜爱之选。本文详细介绍在Docker中安装MongoDB及相关使用方法。
Docker安装MongoDB
第一步:获取MongoDB镜像
首先,我们需要获取MongoDB的Docker镜像,可以使用以下命令在终端中获取:
docker pull mongo
第二步:启动MongoDB
使用以下命令启动MongoDB容器,并将其命名为“mongod”:
docker run --name mongod -d mongo
这将在Docker中启动一个MongoDB容器并运行MongoDB守护进程。
第三步:MongoDB连接配置
在启动Docker后,可以使用以下命令检查容器状态。
docker ps
使用以下命令进入容器:
docker exec -it mongod bash
这将连接到Docker中的mongod容器,并打开Linux shell终端,使我们可以使用MongoDB命令行工具与容器进行交互。在容器内部,我们可以使用以下命令连接到MongoDB:
mongo
这将启动MongoDB命令行工具,并连接到MongoDB服务。
第四步:MongoDB使用方法详解
创建/删除数据库:
> use mydb // 创建一个新数据库 mydb
switched to db mydb
> db.dropDatabase() // 删除mydb数据库
{ "dropped" : "mydb", "ok" : 1 }
创建/删除集合:
我们可以使用以下命令进行集合的创建和删除:
> db.createCollection("mycollection") // 创建一个新集合 mycollection
{ "ok" : 1 }
> db.mycollection.drop() // 删除mycollection集合
{ "ok" : 1 }
插入/更新/查询文档:
以下命令可以插入一个文档到名称为“mycollection”的集合中:
db.mycollection.insertOne( { "name": "John", "age": 35, "email": "john@mydomain.com" } )
以下命令可以更新一个已经存在的文档:
db.mycollection.updateOne( { "name": "John" }, { $set: { "age": 36 } } )
以下命令可以查询文档:
db.mycollection.find()
示例说明
示例一
使用Docker创建一个名为mydb的MongoDB实例,并使用Mongo shell进行交互。
- 获取并安装Docker镜像:
docker pull mongo
- 创建并启动一个MongoDB容器:
docker run --name mydb -d mongo
- 连接到容器中的MongoDB实例:
docker exec -it mydb bash
mongo
- 在MongoDB shell中创建并使用mydb数据库:
use mydb
- 创建一个名为“mycollection”的集合:
db.createCollection("mycollection")
- 向集合中插入一行数据:
db.mycollection.insertOne( { "name": "John", "age": "35" } )
- 查询mycollection集合下的文档:
db.mycollection.find()
示例二
使用Docker Compose创建一个包含MongoDB的完整Web应用程序。
- 创建文件夹并在其中创建docker-compose.yaml文件:
mkdir myapp && cd myapp
touch docker-compose.yaml
- 在docker-compose.yaml文件中添加以下内容:
version: '3'
services:
web:
image: myapp
ports:
- "5000:5000"
depends_on:
- db
db:
image: mongo
这将创建一个包含MongoDB和Web应用程序的两个服务容器。
- 在同一目录下创建一个名为“Dockerfile”的文件,并在其中添加以下内容:
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]
该Dockerfile将以Flask为基础构建一个Python 3.7应用程序,并将其插入到Docker容器中。
- 创建一个名为“app.py”的Python文件,并在其中添加以下内容:
from flask import Flask
from pymongo import MongoClient
app = Flask(__name__)
client = MongoClient("mongodb://db:27017")
db = client["mydb"]
collection = db["mycollection"]
@app.route("/")
def home():
count = collection.count_documents({})
return "There are {} documents in the collection.".format(count)
if __name__ == "__main__":
app.run()
该脚本将创建一个名为"MyApp"的简单Web应用程序,并连接到我们的MongoDB实例,从中读取和推送数据。
- 启动Stack:
docker-compose up -d
现在访问 http://localhost:5000,应该可以看到"MyApp"正在运行,并连接到你的MongoDB实例。
以上就是关于在Docker中安装MongoDB及相关使用方法的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker安装mongoDB及使用方法详解 - Python技术站