Docker部署全栈:二、安装MongoDB

Docker部署全栈项目:二、MongoDB 镜像

一、编写启动脚本

#!/bin/bash

cur_dir=`pwd`

# 停止并删除原有容器
docker stop luokaiii-mongo
docker rm luokaiii-mongo

# docker run 运行镜像
docker run --name luokaiii-mongo \ # --name 指定运行后的容器名称
        -v /${cur_dir}/data:/data/db \ # -v 挂载本地目录到容器中(也就是将容器中的数据保存到宿主机)
        -p 27016:27017 \ # 将容器的27017端口映射到宿主机的27016端口
        -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ # 指定mongo初始账户名称(可以在运行第一次之后,将账号密码这两条删除,以免密码泄露)
        -e MONGO_INITDB_ROOT_PASSWORD=password \ # 指定mongo初始账户密码
        -d mongo:4.0.12 # -d 后台运行;mongo:xx 运行的mongo版本(如果不加版本则默认为lastest)

二、运行脚本

在运行脚本前,需要先将存放数据的目录创建出来:

$ cd /home/luokaiii/images/mongo   # 脚本和DB文件的存放位置

$ mkdir data   # 创建存储目录

$ ./start.sh   # 运行刚刚写的脚本
994e9e05bb42d1d.....  # 控制台打印这种的,即表示启动成功

上述写法,不限于 Windows 还是 Linux。

但是如果 Windows 无法执行 sh 文件,请将 CMD 命令行换成 Git Bash 命令行。

三、测试

1. 浏览器访问27016端口

浏览器访问27016端口

2. 使用 Client 工具连接

NoSQL工具连接

四、日志解释

# MongoDB 启动进程,端口、数据目录、版本
2019-09-23T07:19:56.012+0000 I CONTROL  [initandlisten] MongoDB starting : pid=25 port=27017 dbpath=/data/db 64-bit host=abeb2ca8fece
2019-09-23T07:19:56.012+0000 I CONTROL  [initandlisten] db version v4.0.12

# 插入用户成功
Successfully added user: {
        "user" : "mongoadmin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

# MongoDB 显式地留给用户的身份验证
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

# MongoDB 启动成功
MongoDB init process complete; ready for start up.

关于Linux版本如何运行,将放在Docker-Compose集中部署时一起写。

参考资料:

  1. Docker Hub

项目地址

文章作者: koral
文章链接: http://luokaiii.github.io/2019/09/23/读书笔记/《Docker全栈项目部署》/2.MongoDB/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自