在 Raspberry Pi 上使用 open62541 服务器运行 docker 容器

Posted

技术标签:

【中文标题】在 Raspberry Pi 上使用 open62541 服务器运行 docker 容器【英文标题】:Run docker container with open62541 server on Raspberry Pi 【发布时间】:2020-06-18 21:13:18 【问题描述】:

说明

我已连接到我的树莓派 1(通过 putty,并且我已经按照“在 Ubuntu 或 Debian 上使用 CMake 在 Docker 容器内构建 Debian 包”中描述的步骤 here 进行操作

我已经克隆了 docker-deb-builder 存储库并构建了 dockerfile-ubuntu-18.04 和 dockerfile-ubuntu-17.04。 然后,我克隆了 open62541 存储库并签出了 pack/1.0。 之后,我在 docker-deb-builder 文件夹中创建了输出文件夹并尝试运行 开发文件夹中的以下命令: ./build -i docker-deb-builder:18.04 -o output ~/ma/development/open62541

但它失败并显示以下错误消息:

pi@raspberrypi:~/ma/dockerVersion/docker-deb-builder $ sudo ./build -i docker-deb-builder:18.04 -o output ~/ma/dockerVersion/open62541
Running docker:
docker run -it -it -v /home/pi/ma/development/open62541:/source-ro:ro -v /home/pi/ma/development/docker-deb-builder/output:/output -v /home/pi/ma/development/docker-deb-builder/build-helper.sh:/build-helper.sh:ro -e USER=0 -e GROUP=0 --rm  docker-deb-builder:18.04 /build-helper.sh
Unable to find image 'docker-deb-builder:18.04' locally
docker: Error response from daemon: pull access denied for docker-deb-builder, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

我想要完成的是在我的树莓派上运行一个 docker 容器(其中运行一个 open62541 服务器)。 问题: - 如何解决上述问题? - 如何或在哪里集成我的自定义 open62541 服务器代码?

背景信息/复制步骤

运行命令 cat /etc/os-release 会给我以下信息:

pi@raspberrypi:~/ma/dockerVersion/docker-deb-builder $ cat /etc/os-release                                PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

【问题讨论】:

如文档中所述,您需要构建映像 docker build -t docker-deb-builder:18.04 -f Dockerfile-ubuntu-18.04 。 那行不通。请查看我关于此问题的其他帖子:***.com/questions/60562596/… 【参考方案1】:

问题 1 - 按标签运行容器(但没有按标签找到它)

首先,当您docker run 使用本地无法找到的图像名称时,会出现错误docker: Error response from daemon: pull access denied for docker-deb-builder,因此它会关闭并尝试在 hub.docker.com(公开)上找到docker-deb-builder,如果您去看看没有那个准确的名字。

错误基本上是在告诉你;

我在本地找不到docker-deb-builder 我在 hub.docker.com(公共)上找不到 docker-deb-builder 我想试试 hub.docker.com(私人),但你没有登录

所以您可以先尝试构建容器并使用docker-deb-builder 构建容器并docker tag,这样您就可以使用您在本期中提供的命令在本地找到它。

问题 2 - 基于 armv7 (raspberry pi) 构建

您链接到的页面有说明; git clone https://github.com/tsaarni/docker-deb-builder.git

查看 github 上的 tsaarni/docker-deb-builder 以查找您要定位的 18.04 图像,我发现 the Docekrfile 并且它正在使用 ubuntu:18.04,您需要将其修改为使用 ubuntu:18.04@sha256:60a99a670b980963e4a9d882f631cba5d26ba5d14ccba2aa82a4e1f4d084fb1f,这是 armv7 的签名。

可能只是添加,以确保万一您不知道,要在 armv7 上运行,您还必须在 armv7 上 docker build

【讨论】:

以上是关于在 Raspberry Pi 上使用 open62541 服务器运行 docker 容器的主要内容,如果未能解决你的问题,请参考以下文章

sh 使用Raspbian在Raspberry Pi上安装mitmproxy的说明。

使用python3在Raspberry Pi上打开和关闭Tkinter GUI

在 Raspberry Pi Jessie 上使用 OpenGL

在树莓派2代B型/3代 上安装Fedora23 - Installing Fedora 23 on Raspberry Pi 2 model B or Raspberry Pi 3

树莓派(Raspberry Pi)4B无界面安装 Raspberry Pi 系统篇

树莓派(Raspberry Pi)4B无界面安装 Raspberry Pi 系统篇