-
拉取鏡像
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