-
拉取镜像
docker pull mongo
docker -
选择一个合适的文件夹, 建立mongo目录并进入
mkdir mongo && cd mongo
vim -
建立配置文件目录
mkdir conf
缓存 -
建立并编辑配置文件
vim conf/mongod.conf
mongod.config为mongo配置文件, 示例:bashstorage: journal: enabled: true engine: wiredTiger #以下配置仅对 wiredTiger 引擎生效(3.0 以上版本) wiredTiger: engineConfig: # wiredTiger缓存工做集(working set)数据的内存大小,单位:GB # 此值决定了wiredTiger与mmapv1的内存模型不一样,它能够限制mongod对内存的使用量,而mmapv1则不能(依赖于系统级的mmap)。默认状况下,cacheSizeGB 的值为假定当前节点只部署一个mongod实例,此值的大小为物理内存的一半;若是当前节点部署了多个mongod进程,那么须要合理配置此值。若是mongod部署在虚拟容器中(好比,lxc,cgroups,Docker)等,它将不能使用整个系统的物理内存,则须要适当调整此值。默认值为物理内存的一半。 cacheSizeGB: 1.5 systemLog: logAppend: true net: bindIp: 0.0.0.0 # 是否开启受权 security: authorization: enabled
-
建立并运行mongo docker容器app
docker run --name mongo \ --privileged \ -p 27017:27017 \ -v ~/docker-app/mongo/data:/data/db \ -v ~/docker-app/mongo/conf:/data/configdb \ -v ~/docker-app/mongo/logs:/data/log/ \ -d \ mongo \ -f /data/configdb/mongod.conf
解释:日志
--name mongo #容器名
--privileged #给予权限
-p 27017:27017 #端口映射
-v ~/docker-app/mongo/data:/data/db #数据文件夹映射(主机:容器)
-v ~/docker-app/mongo/conf:/data/configdb #配置文件路径映射
-v ~/docker-app/mongo/logs:/data/log/ #日志文件夹路径映射
-d #后台运行
mongo # 所使用的镜像
-f /data/configdb/mongod.conf #使用配置文件启动(路径对应的容器路径,非主机路径)code -
附一个可直接执行的bash脚本进程
# 建立一个mongo docker容器 mkdir -p mongo && cd mongo mkdir conf touch conf/mongod.conf conf_file='conf/mongod.conf' cat>$conf_file<<EOF storage: journal: enabled: true engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 1.5 systemLog: logAppend: true net: bindIp: 0.0.0.0 security: authorization: enabled EOF docker pull mongo base_dir=$PWD docker run --name mongo \ --privileged \ -p 27017:27017 \ -v $base_dir/data:/data/db \ -v $base_dir/conf:/data/configdb \ -v $base_dir/logs:/data/log/ \ -d \ mongo \ -f /data/configdb/mongod.conf