安装步骤和一些命令行操作 默认安装 版本装的4.0.3
[root@VM_0_8_centos ~]# docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
3b37166ec614: Pull complete
504facff238f: Pull complete
ebbcacd28e10: Pull complete
c7fb3351ecad: Pull complete
2e3debadcbf7: Pull complete
004c7a04feb1: Pull complete
897284d7f640: Pull complete
af4d2dae1422: Pull complete
5e988d91970a: Pull complete
aebe46e3fb07: Pull complete
6e52ad506433: Pull complete
47d2bdbad490: Pull complete
0b15ac2388a7: Pull complete
7b8821d8bba9: Pull complete
Digest: sha256:4ad50a4f3834a4abc47180eb0c5393f09971a935ac3949920545668dd4253396
Status: Downloaded newer image for mongo:latest
[root@VM_0_8_centos ~]# mongo -version
-bash: mongo: command not found
[root@VM_0_8_centos ~]# docker run --name some-mongo -p 27017:27017 -d mongo --auth //运行
c4b8386fe05a87feada72bde4ee6441f50ed2810594c677d1808fcb2add7c47b
[root@VM_0_8_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4b8386fe05a mongo "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:27017->27017/tcp some-mongo
[root@VM_0_8_centos ~]# docker exec -it c4b8386fe05a /bin/bash //c4b8386fe05a 是前面镜像的容器id
root@c4b8386fe05a:/# mongo //进入命令行
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("b09a229e-5b88-4004-980b-a9b352135870") }
MongoDB server version: 4.0.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> use admin //admin是个默认的数据库
switched to db admin
> db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> exit
bye
root@c4b8386fe05a:/# mongo 127.0.0.1/admin -utest -p //-u前面对应账号root 这里故意写错看看能否登陆
MongoDB shell version v4.0.3
Enter password:
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("fe22489a-00f0-4f9b-b22f-4c0429650bfd") }
MongoDB server version: 4.0.3
2018-10-10T09:27:58.092+0000 E QUERY [js] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20
@(auth):6:1
@(auth):1:2
exception: login failed
root@c4b8386fe05a:/# mongo 127.0.0.1/admin -uroot -p //还是写对才能登陆
MongoDB shell version v4.0.3
Enter password:
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("2c285f96-5025-4057-9b2f-94d5510a572e") }
MongoDB server version: 4.0.3
Server has startup warnings:
2018-10-10T09:18:40.312+0000 I STORAGE [initandlisten]
2018-10-10T09:18:40.312+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-10-10T09:18:40.312+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-10-10T09:18:41.107+0000 I CONTROL [initandlisten]
2018-10-10T09:18:41.107+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-10-10T09:18:41.107+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-10-10T09:18:41.108+0000 I CONTROL [initandlisten]
2018-10-10T09:18:41.108+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-10-10T09:18:41.108+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-10-10T09:18:41.108+0000 I CONTROL [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> set name hello //和redis不同 不能这么写
set name to hello
> get name //和redis不同 不能这么写
2018-10-10T09:28:50.080+0000 E QUERY [js] SyntaxError: missing ; before statement @(shell):1:4
> get
2018-10-10T09:29:01.011+0000 E QUERY [js] ReferenceError: get is not defined :
@(shell):1:1
> mongo
2018-10-10T09:29:47.116+0000 E QUERY [js] ReferenceError: mongo is not defined :
@(shell):1:1
> show dbs //查看当前数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> show collections
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> use test //创建一个test库 但是要插入数据才能生效
switched to db test
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> db.hello.insert({"name":"testdb"}) //插入数据才能生效 hello 是个collection 属于新建
WriteResult({ "nInserted" : 1 })
>
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB
> db
test
> show collections
hello
> db.h
db.hasOwnProperty db.hello db.help( db.hostInfo(
> db.hello.find() //查询
{ "_id" : ObjectId("5bbdc71dbf9746c968669b43"), "name" : "testdb" }
参考:
docker中安装mongo
https://blog.csdn.net/meibo69631310/article/details/79709500
docker pull mongo
docker run --name some-mongo -p 27017:27017 -d mongo --auth //这里的--name 放在前面并映射端口
docker exec -it 容器ID /bin/bash //进入容器
mongo
use admin
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]}) //创建用户,此用户创建成功,则后续操作都需要用户认证
exit
测试:
mongo 宿主机ip/admin -utest -p
查看连接是否成功
默认mongodb是不使用用户认证。
show dbs
如果出现not authorized on admin to execute command { listDatabases: 1.0, $db: \"admin\" }错误,那就进行用户认证
use admin
db.auth("root","root")
返回 1 认证成功。