创建一个空文件夹,在这个文件夹下面创建两个文件Dockerfile和main.py
编辑Dockerfile内容如下:
FROM continuumio/anaconda3:latest
ADD main.py /
RUN pip install paho-mqtt
RUN pip install freeopcua
RUN pip install opcua-client
CMD ["python","-u","./main.py"]
编辑main.py内容如下:
from opcua import Client
from opcua import ua
import time
class SubHandler(object):
def data_change(self, handle, node, val, attr):
print("Python: New data change event", handle, node, val, attr)
client = Client("opc.tcp://192.168.224.157:4840/")
client.connect()
objects = client.get_objects_node()
root = client.get_root_node()
myvar = client.get_node("ns=2;i=14")
handler = SubHandler()
sub = client.create_subscription(500, handler)
sub.subscribe_data_change(myvar)
time.sleep(100000)
client.disconnect()
关于OPC UA服务器配置和客户端填写的IP和端口,Node地址请根据实际情况自行修改,切忌使用127.0.0.1作为连接OPC UA服务器IP地址。
在这个文件夹目录下,编译出一个新的image镜像,名字叫edgebox,版本为0.1。注意指令末尾的点别丢了,代表当前目录下找dock配置文件Dockerfile
docker build -t edgebox:0.1 .
等待编译完成,使用指令查看新生成的镜像
docker images
运行opc ua客户端,从opc ua服务器匿名订阅一个变量
docker run -it edgebox:0.1
参考常用指令
查看所有创建的容器
docker container ls -a
查看所有docker容器进程
docker ps
删除image镜像
docker rmi 镜像名或ID
删除所有docker容器
sudo docker rm $(sudo docker ps -a -q)
删除docker容器
docker container rm 容器名或ID
确保虚拟机已经连接外网,打开超级终端,下载continuumio/anaconda3镜像docker pull continuumio/anaconda3创建一个空文件夹,在这个文件夹下面创建两个文件Dockerfile和main.py编辑Dockerfile内容如下:FROM continuumio/anaconda3:latestADD main.py /RUN pip install paho-mqttRUN pip install freeopcuaRUN pip instal
UANodesetWebViewer
在网页中运行的 OPC UA 节点集 XML 文件查看器。 该网页可以托管在 Docker 容器中。 您可以加载节点集文件,然后浏览它们。 如果您想查看 OPC UA 配套规范中定义的标准化节点集文件,则非常方便。
它发布在 DockerHub 上: ://hub.docker.com/r/barnstee/uanodesetwebviewer
通过以下方式运行: docker run -p 8080:80 barnstee/uanodesetwebviewer:latest
然后将您的 Web 浏览器指向
上传您的 XML 节点集文件。 (注意:从属 NodeSet 文件需要一起上传或按要求的顺序上传。)
人们可以浏览模型并与之交互。
当前节点的READ和WRITE是可能的。
from opcua import ua
import time
#By Weloveut:Python访问OPCUA服务器,展示get变量的方法和注册逢变触发的回调函数
#自定义回调函数
class SubHandler(object):
def data_change(self, handle, node, val, attr):
print(...
KubeEdge是个还不错的边缘云平台。能够支持边缘设备的接入和管理。KubeEdge由以下组件组成:设备管理部分的原理如下图所示:https://kubeedge.io/zh/docs/kubeedge_zh/
instance就是设备实例,指某一台具体的设备。
fhttps://kubeedge.io/zh/docs/developer/device_crd/ Mapper用于进行协议转换,实现Kubeedge对各类协议的支持。Mapper is an application that is
#1:安装influxdb就不说了,直接pull
REPOSITORY TAG IMAGE ID CREATED SIZE
influxdb latest 95750833bc56 8 weeks ago 304MB
介绍poc-ua很好的外国文档,比较难得的,简单易懂。
1.Overview
The idea of setting up a remote OPC connection can even bring fear to those who are vastly familiar with DCOM and classic remote OPC. Out of desperation, it may even be common practice to disable firewalls and also expose the computer to unauthorized or anonymous users. Even if a firewall is in place, DCOM requires that port 135 be added to the exception list by default. This port is used for Microsoft’s Remote Procedure Call and has been the target of many malicious attacks. So how can a safe and secure remote OPC connection be established?
The solution comes in the form of a new specification known as OPC Unified Architecture (OPC UA). OPC UA does not require callbacks and the use of DCOM for remote connections. This greatly simplifies firewall configuration and completely eliminates the headache known as DCOM.
The OPC Tunnel is not a product in itself, but rather a feature that is created out of
要使用Docker打包Python镜像,你可以按照以下步骤进行操作:
1. 创建一个名为 `Dockerfile` 的文件,用于定义镜像的构建规则。在该文件中,可以指定镜像的基础操作系统、安装Python环境和所需的依赖包。
2. 在 `Dockerfile` 中,可以使用合适的基础镜像,如 `python:3`,这是一个带有Python 3的官方镜像。你也可以选择其他适合你需要的基础镜像。
3. 使用 `RUN` 指令在镜像中运行命令。例如,可以使用 `RUN apt-get update && apt-get install -y <package>` 安装系统依赖包,或使用 `RUN pip install <package>` 安装Python依赖包。
4. 使用 `COPY` 指令将本地的Python代码添加到镜像中。例如,可以使用 `COPY . /app` 将当前目录下的所有文件添加到名为 `/app` 的容器目录中。
5. 使用 `WORKDIR` 指令设置工作目录。例如,可以使用 `WORKDIR /app` 将容器的工作目录设置为 `/app`。
6. 使用 `CMD` 指令定义容器启动时要运行的命令。例如,可以使用 `CMD ["python", "app.py"]` 运行名为 `app.py` 的Python应用程序。
7. 打开命令行终端,导航到包含 `Dockerfile` 的目录,并运行以下命令来构建镜像:
docker build -t <image_name> .
其中,`<image_name>` 是你想要为镜像指定的名称。
8. 等待镜像构建完成后,你可以使用以下命令来运行镜像:
docker run --rm -it <image_name>
这将启动一个容器,并进入交互式终端。
以上就是使用Docker打包Python镜像的基本步骤。你可以根据自己的需求进行定制和扩展。