树莓派上部署docker,mongodb,EMQX

笑着哭i 提交于 2019-12-16 07:38:55
IP1123q``地址
192.168.16.244
raspberry

pi@raspberrypi:~ $ sudo passwd root
输入新的 UNIX 密码:1
重新输入新的 UNIX 密码:1
passwd:已成功更新密码
pi@raspberrypi:~ $
密码为1


路由器 密码:12345678
portainer 管理界面
http://192.168.16.244:9000/#/images
用户名:admin
密码:yuzi4558094


###########################################
安装数据库
本地镜像另一个版本cretzel/rpi-mongodb
docker run -itd -P --name mongodb-server cretzel/rpi-mongodb bash

docker exec -it  mongodb-server bash

ps -ef | grep mongodb

查找momgo软件

显示当前运行容器
docker ps  
docker ps -a (-a隐藏的)
显示当前镜像 mongodb
docker images
拉去镜像   
docker pull  cretzel/rpi-mongodb 拉入存在本地 :后版本号镜像名字 docker pull  mymongodb :4.3.4  ( :latest为最新版)
docker run -di --name mongodb -p 27017:27017 cretzel/rpi-mongodb
进入
docker exec -it  mongo  cretzel/rpi-mongodb admin
删除容器ID -f强制删除
docker  rm -f 833a5a58146e
删除镜像ID
docker rmi 833a5a58146e
删除前要停止
令格式:docker start 容器的ID/名称  #启动停止状态的容器
命令格式:docker stop 容器的ID/名称  #中止运行状态的容器
###########################################

1.启用root

raspbian默认用户名为pi、密码为raspberry(若使用raspi-config修改过密码,则为修改后的密码)
默认情况下,root用户并未启用,且没有密码
当需要root权限时,需要使用sudo执行
若要启动root账号,可以使用pi账户进行登陆,执行命令

sudo passwd root

之后设定root密码,之后执行命令启用root账户

sudo passwd --unlock root
yuzi4558094

重启系统或执行以下命令切换到root用户

su root

重新锁定root账户可执行以下命令

sudo passwd --lock root

需要修改root用户之外其他用户的用户名可使用如下命令

sudo usermod -l <new_user_name> <old_user_name>

需要修改用户密码,使用如下密码

sudo passwd <new_user_name>
###########################################
1.安装EMQX
emqx v3.2.3 is started successfully!

2.拉取镜像命令:(镜像名称emqx/emqx)
    docker pull emqx/emqx

3.Docker的一些操作命令:
    docker images

4.运行docker 命令:

docker run --rm -ti --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083  emqx/emqx:latest --restart always

docker后台启动命令:
持久化运行
docker run -di --restart=always --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest 

docker run -di --restart=always --name mongo -p 27017:27017 joseba/rpi-mongodb:latest


进入emqtt docker命令:

docker exec -it emqx /bin/sh

重启emqtt docker命令:

docker restart emqx

5.访问EMQT web管理页面:
http://ip:18083? 默认账号:admin 密码:public
###########################################
安装 Docker
阿里云的一键安装脚本:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
仓库搜索找到一项 andresvidal/rpi3-mongodb3的镜像源
docker pull andresvidal/rpi3-mongodb3
# 先创建一个本地目录用于存放数据
mkdir ~/db/mongo
# 创建容器
docker run -d --name mongodb3 -v /home/pi/db/mongo:/data.db -p 27017:27017 andresvidal/rpi3-mongodb3
docker container ls 来查看容器运行情况
#下载 Docker 图形化界面 portainer
sudo docker pull docker.io/portainer/portainer
#创建 portainer 容器 在容器底部创建卷
sudo docker volume create portainer_data
#运行 portainer
sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
以下是数据持久化实例:
sudo docker volume create mymongo_Data
sudo docker run -d -p 27017:27017 --name mymongo --restart always -v /var/run/docker.sock:/var/run/docker.sock -v mymongo_Data:/data joseba/rpi-mongodb
db.user.insert({"usename":"黄大","age":32,"sex":"man"});
在树莓派根目录/data 里面有koa数据表

/var/lib/docker/volumes/b245c6e32a686cb74fb59e794d2de1540776c31677933dc836ab08bb8aa35c72/_data

1

docker volume create mongodb3_data

2
docker run -di -p 27017:27017 --name mongodb --restart always  -v /home/pi/docker.sock:/home/pi/docker.sock -v mongodb3_data:/data andresvidal/rpi3-mongodb3

docker run -d -p 90:90 --restart=always --name=node deindorfer/ram-node12.4:latest

docker run -it deindorfer/ram-node12.4:latest /bin/bash

输入:
http://192.168.16.244:27017/
返回:
t looks like you are trying to access MongoDB over HTTP on the native driver port.
成功
可以用mongo管理工具连接;
进入容器中mongo的shell窗口
docker exec -it mongodb3 /bin/bash
mongo
>进入docter命令行
exit
停止数据库
docker stop mongodb3 
docker ps -a
docker start mongodb3 
###########################################
服务器断电后 docKer 容器全部掉线
启动docker容器
docker run –name [CONTAINER_NAME] [CONTAINER_ID]
查看容器运行状态
docker ps -a
自动重启功能 记录ID
设置此容器开机或重启docker后自动启动
docker container update --restart=always 62222794cec4

docker run -d --restart=always
一条命令重启挂掉的docker
docker restart $(docker ps -a -q)

###########################################


修改docker仓库资源的地址\
宿主机器编辑文件:vim/etc/docker/daemon.json
在该daemon.json配置文件中加入,没有该文件先建一个
在文件中加入
需要自己大阿里云镜像
{
  "registry-mirrors": ["https://42i4fsjy.mirror.aliyuncs.com"]
}
保存退出
重新启动
sudo systemctl restart docker
sudo systemctl enable docker

修改镜像后搜索不到
改回
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}


https://code.aliyun.com/yuzi40277738/zoom_yun.git

SHH
git@code.aliyun.com:yuzi40277738/zoom_yun.git


###########################################

安装Node.js
树莓派3, 需要下载ARMv7 可以查看自己的版本
docker run -di --restart always --name node -p 3000:3000 deindorfer/ram-node12.4:latest
docker run -di --restart always --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest
###########################################
可视化SHELL命令工具

Windows版下载地址:
http://www.hostbuf.com/downloads/finalshell_install.exe


阿里云容器加速
密码yuzi@4558094

sudo docker login --username=yuziyuzi40277738 registry.cn-hangzhou.aliyuncs.com
密码 yuzi@4558094
https://cr.console.aliyun.com/cn-qingdao/new
$ sudo docker tag 86ee6483d529 registry.cn-hangzhou.aliyuncs.com/yuzi402777738/yuz_test:3.2
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/yuzi402777738/yuz_test:3.2

-it 进入
--name 别用名
-dl 守护式
-d 后台运行
/bin/bash  多加了一个命令方式,一般不加
docker attach ID 直接进入 直接操作 进入容器超所
docker exec -it 直接操作容器,执行弯回到宿主主机终端
镜像源修改
nano /etc/apt/sources.list 
nano /etc/docker/daemon.json

dir 查看目录文件
查看test 文件
cat test

emqx
版本
3.2.3

docker search

docker search [OPTIONS] TERM
OPTIONS说明:

--automated :只列出 automated build类型的镜像;

--no-trunc :显示完整的镜像描述;

-s :列出收藏数不小于指定值的镜像。


进入mysql 交互

mysqld

启动:

cd c:/mysql/bin
mysqld --console
关闭:

cd c:/mysql/bin
mysqladmin -uroot shutdown


安装
docker run -di --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456

docker exec 进入mysql 交互
开启
mysqld
 mysql -u root -p
密码:123456

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)


# docker 中下载 mysql
docker pull mysql

#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Lzslov123! -d mysql

#进入容器
docker exec -it mysql bash

#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lzslov123!';

#添加远程登录用户
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';



docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo
命令说明:
-p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
-v $PWD/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录













易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!