docker search mongodb
docker pull mongo:7.0.8
docker images
第一种方法:
docker run -itd --name mongo -p 27017:27017 -e TZ=Asia/Shanghai -v /opt/services/mongo/mongod.conf.orig:/etc/mongod.conf.orig -v /opt/services/mongo/data:/data/db -v /opt/services/mongo/logs:/var/log/mongodb mongo:7.0.8 --auth --config /etc/mongod.conf.orig
参数说明:
-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
–auth:需要密码才能访问容器服务。
最后我们可以通过 docker ps 命令查看容器的运行信息:
接着使用以下命令添加用户和设置密码,并且尝试连接。
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},"readWriteAnyDatabase"]})
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
方法二:
参考: https://hub.docker.com/_/mongo
最新的:
您不需要/不能–auth在命令行上使用,因为docker entrypoint.sh脚本在环境变量存在时添加此内容.
docker run -itd --name mongo -p 27017:27017 -e TZ=Asia/Shanghai -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 -v /opt/services/mongo/mongod.conf.orig:/etc/mongod.conf.orig -v /opt/services/mongo/data:/data/db -v /opt/services/mongo/logs:/var/log/mongodb mongo:7.0.8 --config /etc/mongod.conf.orig