只需在Docker中准备MongoDB环境并连接
对于如何创建MongoDB环境的问题,我来记录一下。
准备docker-compose的配置
因为我喜欢用docker-compose编写。
version: "3"
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
ports:
- 27017:27017
启动容器
当您想要从外部进行连接时,
$ docker-compose up -d
或者
$ docker-compose up
当你想在内部尝试各种方法时
$ docker-compose run --rm --service-ports mongo /bin/bash
如果使用了”–service-ports”选项,会将端口公开给外部。
MongoDB 的启动
除非特别指明,这里仅涉及内部试验环境的描述。默认情况下,指的是在容器内进行的操作。
启动
/# mongod
なんやかんや
以下操作在另一个进程中执行。
用中文进行翻译的句子是:
在中文中只需要一个选项你是:使用恶魔(“デーモン”)
/# mongod --fork --logpath /var/log/mongodb/mongod.log
about to fork child process, waiting until server is ready for connections.
forked process: 50
child process started successfully, parent exiting
连结
一応确认一下流程。
/# ps aux | grep mongo
root 50 1.6 0.9 1579820 97448 ? Sl 16:36 0:01 mongod --fork --logpath /var/log/mongodb/mongodb.log
由于他看起来很坚强,所以连接。
/# mongo
各种操作 (Kè
数据库切换(创建)
> use sample
switched to db sample
插入(创建一个收藏)
> db.sample_collection.insert({id: 1, name: "taro"})
WriteResult({ "nInserted" : 1 })
找到
> db.sample.find()
{ "_id" : ObjectId("5f107fa8182d6aa721d344fe"), "id" : 1, "name" : "taro" }
退出
> ^C
bye
我来看一下日志。
/# cat /var/log/mongodb/mongodb.log
いろいろ書いてあった
结束mongo进程
/# mongod --shutdown
2020-07-16T16:31:30.899+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-07-16T16:31:30.902+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
killing process with pid: 50