转自https://bbs.hassbian.com/thread-5438-1-1.html
[基础教程] 在CentOS中安装Docker-利用Docker安装node-red和mqtt以及其他
这两天有童鞋个别有遇到了一些无法访问或者HA自带的homekit无法关联苹果home APP的问题,因为是宿主机是centos7,默认是有个防火墙启动的,对于安全性要求不高的小伙伴,我们可以选择关闭它,当然也有别的方法,这边就不介绍了,因为涉及iptables和firewall的内容太多了...(其实就是懒),现在更新下简单的解决办法,就是停用防火墙(关闭防火墙后,下面添加防火墙允许的端口的配置就不需要添加了)
首先需要停止Docker的容器服务,停止前记得把容器启动设置变更成始终启动,
首先需要停止Docker的容器服务,停止前记得把容器启动设置变更成始终启动,
首先需要停止Docker的容器服务,停止前记得把容器启动设置变更成始终启动,
修改方式有两种:
第一种设置容器自动跟随Docker自动启动的,通过web_UI界面修改:
第二种方法是通过命令行模式添加,我感觉还是这个逼格比较高
ssh或者其他方法登录到centos7上:
修改前需要先停用容器
修改前需要先停用容器
修改前需要先停用容器
[AppleScript] 纯文本查看 复制代码
?
1 |
|
获取容器ID或者容器名字
[AppleScript] 纯文本查看 复制代码
?
1 |
|
然后输入
[AppleScript] 纯文本查看 复制代码
?
1 |
|
或者
[AppleScript] 纯文本查看 复制代码
?
1 |
|
然后就好了,保险起见,把你所有的容器都设置一遍...
还有一种不是很推荐的方法,直接修改配置文件!!!修改前需要先关闭容器
[AppleScript] 纯文本查看 复制代码
?
1 |
|
进入文件夹/var/lib/docker/containers/,根据前面查到的容器ID,可以找到对应的配置文件夹
进入对应文件夹找到hostconfig.json并编辑它,也可以修改,这里不说了,看图
修改好容器自动跟随Docker自动启动后,就可以停止Docker服务了
[AppleScript] 纯文本查看 复制代码
?
1 |
|
然后关闭防火墙
[AppleScript] 纯文本查看 复制代码
?
1 |
|
顺便将防火墙自动启动也关掉
[AppleScript] 纯文本查看 复制代码
?
1 |
|
其实不关闭防护墙更好,只要开启相关端口和在云服务器控制台设置安全组就可以正常访问
设置开放端口:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
重新载入,添加端口后重新载入才能起作用
firewall-cmd --reload
查看9000端口访问权限
firewall-cmd --zone=public --query-port=9000/tcp
关闭9000访问权限
firewall-cmd --zone=public --remove-port=9000/tcp --permanent
如果不行就重启防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
等一会儿就可以访问了,不建议关闭防火墙
如果装了iptables的关闭方法一样
关闭后再次启动Docker后就OK了
可以用docker ps看下容器是否都正常启动了...
更新于20181129
<=======================分割线=======================>
下面是正文
本来我的服务全部都是直接安装在Ubuntu Server中的,近期觉得运行不太稳定(瞎几把折腾),决定将整个系统全部换一下
其实我只是想把论坛当个备忘录,自己忘了以后可以看看
下面的内容一会儿用的是命令行模式,一会儿用的是web UI界面,反正两种都可以...
好了,进入主题
先讲下环境:外部实体服务器为Windows 2016 Server
虚拟化系统为Hyper-y 安装系统为CentOS最小化安装版,选择的CPU是二代,内存4G
本帖隐藏的内容
安装完成后,ssh进入系统,先更新下系统
[AppleScript] 纯文本查看 复制代码
?
1 |
|
'==========================安装docker=========================='
使用yum安装docker
[AppleScript] 纯文本查看 复制代码
?
1 |
|
启动 Docker 后台服务
[AppleScript] 纯文本查看 复制代码
?
1 |
|
设置开机自启动
[AppleScript] 纯文本查看 复制代码
?
1 |
|
查看Docker版本
[AppleScript] 纯文本查看 复制代码
?
1 |
|
'==========================安装docker可视化UI:Portainer=========================='
可以查询当前有哪些Portainer镜像
[AppleScript] 纯文本查看 复制代码
?
1 |
|
下载镜像
[AppleScript] 纯文本查看 复制代码
?
1 |
|
运行容器
[AppleScript] 纯文本查看 复制代码
?
1 |
|
参数说明:
-d:容器在后台运行;
-p 9000:9000 :宿主机9000端口映射容器中的9000端口
-v /var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中;
-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录;
尝试用浏览器http://{host-ip}:9000访问,不出意外应该能看到了,不过是英文版的...
第一次打开会让你设置密码,用户名是admin,设完密码就能登录进去了。
'==========================安装node-red=========================='
这个会自动下载并安装node-red
[AppleScript] 纯文本查看 复制代码
?
1 |
|
容器会自动运行在1880端口,当然你去刚才安装的web UI上刷新下也可以看到
如果按control+c会终止容器,要退出当前容器并保持容器运行,请按control+P 然后control不要松开,再按control+Q
不过就算control+c终止了也没多大问题尝试用浏览器访问http://{host-ip}:1880,就能看到node-red的页面了
命令参考:
重新连接到容器
docker attach mynodered
关闭容器
docker stop mynodered
开启容器
docker start mynodered
更新容器也很简单,三句命令即可
docker pull nodered/node-red-docker
docker stop mynodered
docker start mynodered
如果删除 Containers再重新建立后,启动container的时候出现iptables: No chain/target/match by that name
service docker restart
就可以了
然后我们来升级nodejs,不知道这步需不需要的,反正我是升级了最新版...大家如果用着没问题也可以不升级(最新版强迫症患者)
在portainer面板中进入命令管理页面,Command使用/bin/bash,User使用root
进入容器后输入以下内容
[AppleScript] 纯文本查看 复制代码
?
1 2 3 4 |
|
升级成功后关闭即可
然后访问http://{host-ip}:1880可以按照论坛中大神的帖子添加node-red的各种节点
'==========================在docker中安装mqtt=========================='
用Docker安装mosquitto
[AppleScript] 纯文本查看 复制代码
?
1 |
|
在CentOS中创建/mosquitto/config/mosquitto.conf,并添加以下指令
[AppleScript] 纯文本查看 复制代码
?
1 2 3 |
|
启动容器,查看是否可以正常运行
[AppleScript] 纯文本查看 复制代码
?
1 |
|
跟刚才一样按control+P 然后按 control+Q退出当前容器
查询容器运行的ID
[AppleScript] 纯文本查看 复制代码
?
1 |
|
再次进入容器
[AppleScript] 纯文本查看 复制代码
?
1 |
|
在容器中创建mqtt的账户与密码
在容器中创建mqtt的账户与密码
在容器中创建mqtt的账户与密码
....
[AppleScript] 纯文本查看 复制代码
?
1 2 |
|
[AppleScript] 纯文本查看 复制代码
?
1 |
|
centos7防火墙开放1883端口与9001端口,当然你也可以把防火墙关了
[AppleScript] 纯文本查看 复制代码
?
1 2 |
|
现在可以在node-red创建个mqtt节点测试下...
安装HA啥的应该没啥难度了...
这就不说了哈...
上面的截图貌似也懒得截请大家不要见怪,懒癌晚期...