docker pull mongo
docker run -itd \
--name c_mongo \
--restart=always \
-p 27017:27017 \
-v /home/mongodb/configdb:/data/configdb \
-v /home/mongodb/db:/data/db \
mongo \
--auth
-itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行。
--name c_mongo:容器名称
-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
--auth:需要密码才能访问容器服务(注意:安全问题,MongoDB默认是不开启权限验证的,不过设置了这里就相当于修改MongoDB的配置auth=ture启用权限访问)。
docker exec -it c_mongo mongo admin
# docker exec -it <容器名> <mongo命令> <数据库名>
db.createUser({ user: 'admin', pwd: 'dujunhui123', roles: [ { role: "root", db: "admin" } ] });
user:用户名admin
pwd:密码adminpwd
role:角色root
db:授权使用admin库
# 防火墙开放端口27017
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=27017/tcp