拉取mongo镜像
docker pull mongo
#等价 docker pull mongo:latest
查看镜像挂载信息
docker inspect mongo --format='{{json .ContainerConfig.Volumes}}
输出信息如下:
{"/data/configdb":{},"/data/db":{}}
新建宿主机目录
启动容器
docker run -itd \
了 --name mongo \
--privileged=true \
-p 27017:27017 \
-v ~/data/mongo/data/configdb:/data/configdb \
-v ~/data/mongo/data/db:/data/db \
--restart=always \
mongo --auth
-itd
(以交互的方式,新建一个模拟终端运行容器)
-i
(在后台运行容器,并且打印容器ID)-t
(分配一个伪TTY)-d
(保持STDIN打开状态)--name
(给容器起一个名字方便管理)--privileged=true
(使容器内的 root 拥有真正的 root 权限)-p 27017:27017
(将容器的27017端口映射到主机的27017端口)-v ~/data/mongo/data/db:/data/db
(文件挂载目录)-v ~/data/mongo/data/configdb:/data/configdb
(配置文件路径)--restart=always docker启动时自启
--auth
(需要密码才能访问容器服务)
操作mongodb
以 admin 用户身份进入mongo
docker exec -it mongo mongosh admin
添加用户并设置密码
db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: 'userAdminAnyDatabase', db:'admin'},{role:'readWriteAnyDatabase',db:'admin'}]});
#{ ok: 1 }
对 admin 用户 进行身份认证
db.auth('admin', '123456')
#{ ok: 1 }