`
sillycat
  • 浏览: 2539464 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MongoDB Docker and Raspberry Pi

 
阅读更多
MongoDB Docker and Raspberry Pi

1 Set up MongoDB in Docker
Simple Make file
IMAGE=sillycat/public
TAG=raspberrypi-mongodb
NAME=raspberrypi-mongodb

docker-context:

build: docker-context
docker build -t $(IMAGE):$(TAG) .

run-init:
docker run -d -p 27017:27017 -p 28017:28017 -v /mnt/driver1/data/mongodb:/var/lib/mongodb -v /opt/mongodb/log:/var/log/mongodb -e RUNNING_MODULE=INIT --name $(NAME) $(IMAGE):$(TAG)

run:
docker run -d -p 27017:27017 -p 28017:28017 -v /mnt/driver1/data/mongodb:/var/lib/mongodb -v /opt/mongodb/log:/var/log/mongodb -e RUNNING_MODULE=RUN --name $(NAME) $(IMAGE):$(TAG)

debug:
docker run -ti -p 27017:27017 -p 28017:28017 -v /mnt/driver1/data/mongodb:/var/lib/mongodb -v /opt/mongodb/log:/var/log/mongodb --name $(NAME) $(IMAGE):$(TAG) /bin/bash

clean:
docker stop ${NAME}
docker rm ${NAME}

logs:
docker logs ${NAME}

publish:
docker push ${IMAGE}:${TAG}

fetch:
docker pull ${IMAGE}:${TAG}


Docker file is also simple, because it is an apt-get install
#Set up FTP in Docker

#Prepre the OS
FROM resin/rpi-raspbian:jessie
MAINTAINER Carl Luo <luohuazju@gmail.com>

ENV DEBIAN_FRONTEND noninteractive
ENV DAEMONUSER root
RUN echo "deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi\n\
deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi\n\
" > /etc/apt/sources.list
RUN apt-get -y update
RUN apt-get -y dist-upgrade

#install mongod soft
RUN apt-get -y install mongodb-server

#configure the server
ADD      conf/mongodb.conf  /etc/
ADD      conf/mongodb_auth.conf /etc/mongodb_auth.conf
ADD      conf/mongodb_noauth.conf /etc/mongodb_noauth.conf

#start the application
EXPOSE   27017 28017
RUN     mkdir -p /app/
ADD     start.sh /app/
WORKDIR /app/
CMD [ "./start.sh" ]

For the configuration mongoldb.conf, I only change the auth and bind_ip
bind_ip = 0.0.0.0
port = 27017

The flow will be system start mongo, add admin user, enable auth and restart the mongoDB
start.sh is as follow:
#!/bin/sh -ex

if [ "$RUNNING_MODULE" = "INIT" ]; then
    #start non auth server
    /etc/init.d/mongodb start

    #sleep 2 minutes
    sleep 2m

    # add user
    mongo admin --eval "db.addUser('supper', ‘password')"

    # set auth and restart
    cp /etc/mongodb_auth.conf /etc/mongodb.conf
    /etc/init.d/mongodb restart
else
    # set auth
    cp /etc/mongodb_auth.conf /etc/mongodb.conf

    # start server
    /etc/init.d/mongodb start

fi

# Run mongo as the running process, this is required to keep the docker process running
tail -f /dev/null

Check mongoDB AUTH
> show dbs
admin 0.0625GB
local 0.03125GB
mydb 0.0625GB
test 0.0625GB

2 Switch to use admin DB
> use admin
switched to db admin

check if there is any users in DB
> db.system.users.find();

add user in admin
> db.addUser("super","password")

Verify auth
> db.auth("super","password")

1

Login to the auth user with command
> mongo --host sillycat.ddns.net --port 27017 -usuper -ppassword --authenticationDatabase admin

It may required username and password with params
-u username -p password

Connect to my server
> mongo --host sillycat.ddns.net --port 27017

Choose database
> use mydb;

New/Save/Query data
> j = {name:"mongo"};
> db.things.save(j);
> db.things.find();

dump command all the database
> mongodump -h sillycat.ddns.net -o ~/data/mongodb/

restore all the database
> mongorestore -h sillycat.ddns.net ~/data/mongodb/ --drop

References:
mongoDB
http://yannickloriot.com/2016/04/install-mongodb-and-node-js-on-a-raspberry-pi/
http://blog.51yip.com/nosql/1573.html
http://www.runoob.com/mongodb/mongodb-mongodump-mongorerstore.html

redis
http://andreas-kongelstad.tumblr.com/post/51622770030/part-2-installing-redis-on-raspberry-pi

mongoDB AUTH
http://bubkoo.com/2014/02/07/mongodb-authentication/
http://stackoverflow.com/questions/10743905/how-can-i-use-a-script-to-create-users-in-mongodb
http://stackoverflow.com/questions/22682891/create-a-mongodb-user-from-commandline
分享到:
评论

相关推荐

    毕设&课程作业_基于Raspberry PI 和 IPv6的智能宿舍管理系统.zip

    9. **部署与运维**:学习如何在Raspberry Pi上部署应用程序,可能涉及到Docker容器化、自动化部署工具如Ansible等。 10. **文档编写**:良好的项目文档是必不可少的,包括设计文档、用户手册和开发者指南等。 通过...

    RaspberryShop:电子商务平台,灵感来自Raspberry Pi

    《RaspberryShop:基于Raspberry Pi灵感的电子商务平台构建详解》 在当今的数字化时代,电子商务平台已经成为商业运作的重要组成部分。而"RaspberryShop"是一个独特的项目,它以树莓派(Raspberry Pi)为灵感,利用...

    毕设&课程作业_一个简易版的智能家居系统,采用springboot+pi4j。.zip

    其次,Pi4J是一个用于Raspberry Pi的Java库,它允许开发者通过GPIO(通用输入/输出)接口直接控制Raspberry Pi的硬件。GPIO接口允许我们与外部电子设备交互,例如传感器、电机、LED灯等。在智能家居系统中,Pi4J可能...

    OpenWeather-Datalogger:完全使用Python和mongodb数据库编写的OpenWeather数据记录器

    该项目已在RaspberryPi 3上进行了测试。API请求包含多个位置。 Openweathermap.org API openweathermap组织免费提供API,每天限制1000个请求,每小时限制60个调用。 其他计划可用。 生成单独的API密钥没有任何限制...

    AIOT:https://www.accupass.comevent2010190951391182653038上的学习笔记和家庭作业

    AIOT物联网与感测装置介绍D01 AIOT人工智慧物联网介绍D02感测器介绍D03感测器...docker使用D08 MonogoDB大数据资料库介绍与安装实作基本的MonogoDB使用D09 Python访问MongoDB常用指令与程序教学pymongo增删改改查D10 ...

    doreme:Docker-组成用于设置Node-Red,Mosquitto Broker和Mongo数据库的工具

    您当然可以在具有docker和docker-compose的任何计算机上运行此程序,但是它已针对Raspberry Pi(Mongo数据库)进行了优化。 它包括Node-Red,Mosquitto Broker和Mongo Database的预配置容器。 节点红色还包括许多...

    realm-IOT

    在设置完Raspberry pi并在DHT11温湿度传感器中进行接线后,我们将以一个简单的python脚本开始,该脚本通过REST API webhook通过2-docker-setup-broker.sh直接将数据发送到MongoDB。 然后,我们将增强此简单代码,...

    microservices-design-patterns:使用多种语言的微服务架构

    将服务部署在Raspberry Pi群集中以访问并创建用户。 随意使用其他语言( Ruby?, C#? )创建新的微服务,请遵循以下最低要求: 在根目录上创建一个新文件夹,并将代码放入 添加最少的文档 添加Rest API 添加JWT...

    202025220101刘磊+毕业设计终稿.zip

    9. **物联网(IoT)**:可能包括硬件接口(如Arduino、Raspberry Pi)、传感器数据采集、MQTT协议、云平台集成(如AWS IoT、Azure IoT Hub)。 10. **区块链技术**:可能研究比特币、以太坊等公链,或者是智能合约的...

    Learning-Sharing, 技术分享,工具分享,好玩的东西.zip

    例如,可能有基于AI的小游戏、利用Arduino或Raspberry Pi制作的DIY硬件项目、数据可视化的艺术作品等。这些内容通常旨在激发学习兴趣,让技术学习更加生动有趣。 5. **Learning-Sharing-master**: 文件名...

    SmartFarmProject-master.rar

    同时,考虑到物联网(IoT)和云计算的运用,可能涉及到MQTT协议、RESTful API、Docker容器化技术、数据库(如MySQL、MongoDB)以及云计算平台(如AWS、Azure或Google Cloud)等。 4. **硬件集成**: 智能农业离不开...

    开源时代杂志集锦--linux时代内部专业期刊(6-11期)

    3. **开源硬件**:可能讨论了Arduino、Raspberry Pi等开源硬件平台,以及它们在物联网(IoT)中的应用。 4. **开源移动平台**:如Android的发展状况,以及如何参与开源移动平台的开发。 开源时代200904(第八期)可能...

    homesense:Node.js 实验

    4. **硬件交互**:如果"家感"项目涉及硬件,如Arduino或Raspberry Pi,我们需要了解如何使用Node.js库(如Johnny-Five或Pi GPIO)来控制GPIO端口,与传感器和执行器进行通信。 5. **数据库集成**:存储和检索设备...

    IoT_manager

    2. **Python库**:如`paho-mqtt`用于实现MQTT协议,`Adafruit_Python_DHT`用于读取DHT系列湿度和温度传感器数据,`RPi.GPIO`在Raspberry Pi上进行GPIO操作等。 3. **设备管理**:如何注册新设备,跟踪其状态,执行...

    Electronica_IOT

    4. **硬件交互**:Python有多个库如`RPi.GPIO`(针对Raspberry Pi)、`Adafruit_Python_DHT`(DHT系列湿度和温度传感器)等,可以方便地控制硬件设备,读取传感器数据。 5. **事件驱动编程**:对于实时性要求较高的...

    DIY-Home-Monitoring-System:使用 BuildAX(理学士论文项目)为 DIY 家庭监控系统拖放 Web 应用程序

    5. **物联网(IoT)**:传感器数据的收集可能涉及 IoT 设备,如 Raspberry Pi 配合各种环境传感器。这些设备通过 MQTT 或 CoAP 协议与服务器通信。 6. **地图与定位**:用户界面中绘制房屋布局可能使用地图API,如 ...

Global site tag (gtag.js) - Google Analytics