0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

i.MX6ULL支持docker-V1.01

武汉万象奥科 2022-05-12 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.导读:

联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。Docker只所以发展如此迅速,也因其对这些情况给出了一个标准化的解决方案。本文将以我们武汉万象奥科电子有限公司的i.MX6ULL评估套件作为平台,搭建支持docker的嵌入式环境。

2.初始Docker

Docker是基于Go语言实现的开源容器项目,设想这么一个情况,应用层、服务等操作需要在多种不同的嵌入式平台搭建,每移植到一个平台上时,需要为每个平台搭建环境,例如安装Apache、MySQL、PHP等环境,每次引入新平台都是一轮耗时耗力的工程。

而Docker提供一种更为聪明便捷的方法,通过容器来打包应用、解耦应用和运行平台。意味着导入新平台时,只需新平台内运行docker容器,就可以快速完成部署。

本节简单介绍一下Docker的三大核心概念,更详细请根据网上资料专业学习Docker知识。

表1.1 Dokcer的三大核心概念

adf5a799c4934f91b9867bb5c95012b1

目前最大的公开仓库是官方提供的Docker Hub,其中存放着数量庞大的镜像供用户下载。同时国内的企业也逐步构建起自己的业务镜像,如华为云的IoT边缘 IoTEdge、阿里云等服务,都逐渐去底层差异化。

当用户搭建好自己的镜像后,只需push命令上传到指定的仓库。在新的机器上,只需pull命令将镜像从仓库下载下来。

3.ARM硬件环境

本文档使用我司的HD-IMX6ULL-MB评估套件来实现docker环境,硬件产品如下所示。

ae9ac6a247a745debcceab6fdb5847ab

硬件平台环境条件如下所示。

表1.2 硬件平台资源

3f05fb3224684a58afb669c757999b24

4.烧录固件

使用我司特别提供的固件(可快速安装docker),快速部署验证。固件包为“mfgtools_imx6ull_emmc_ubuntu18.04_filesystem_全开源核心板.zip”,需要验证的客户可直接联系我司的销售工程师获取即可。内容如下所示。

cc072f9af2224b4d94b9be125cc39ecb

烧录步骤参考用户手册即可,这里不再赘述。

5.Ubuntu搭建docker操作

上述固件包内已经是Ubuntu系统镜像,我们只需在此环境下直接使用命令安装docker环境即可。系统安装docker环境的操作步骤如下所示。

首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。

f7af57a00aca40ae8649e6a419a4eb9f

然后清除旧版本的docker软件,再重新安装docker.io。

2e654f02363a4abaa4f15def71998292

启动docker。

061cec2c92fa43d4879d10ffa488b008

使能docker开机自启动。

e546c7defbc74bb3b8468e08dbaf3b36

检查docker运行状态。

e39a085bf9e64b219f745c5080f897279d90e01fe81843b69a0fefd0f0d94df4

6.获取镜像

运行此命令可以从Docker Hub上下载现成镜像。

1706922c06d34770a9afecd4e7473703667a68fbcd13434d87ac60be446444eb

查看本地的镜像文件命令如下所示。

50a31e03444f49f1936c5ff24649451338b2e68a1d0448bca1ab8ec633c1bcd1

7.创建容器

如上文所说,镜像可以看作一个只读模板,而容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。

创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。

4808d9d4c94f4f4a8911e2f7acf325ef

查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。

d2d312eab5e346cda3c6c8a5f777d8de3a02699f09e943e5b8602ca31356e594

8.启动容器

容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。

677945356f6e48249f194a5d84572695

使用NAMES来操作容器的命令如下所示。

6e583aa5ed5f45e1a86cb68e7ffbff6b

上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。

928869993a7f4560ae75ec9100017adc

进入后,可以操作容器内的命令,如下所示。

e5a806155035467b9d7f764254c9d39f

通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。

cc93eaaf476948c3bfcbbc06daef2b91

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Docker
    +关注

    关注

    0

    文章

    526

    浏览量

    14025
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3506 vs NXP i.MX6ULL

    NXPi.MX6ULL核心板进行多方面对比。性能与能效对比性能优势对比:RK3506在接口方面比i.MX6ULL少2个UART,其他性能方面,RK3506以三核A7(1.
    的头像 发表于 06-19 16:26 972次阅读
    瑞芯微RK3506 vs NXP <b class='flag-5'>i.MX6ULL</b>

    618盛夏狂欢,米尔电子携手恩智浦开启年度技术盛宴!

    即日起-2025.06.30,米尔恩智浦多系列开发板限时折扣!米尔基于i.MX91、i.MX93、i.MX8MPlus、i.MX6UL/i.MX6U
    的头像 发表于 06-13 08:03 721次阅读
    618盛夏狂欢,米尔电子携手恩智浦开启年度技术盛宴!

    重磅新品登场!第二代高性能分布式IO模块、i.MX6ULL核心板、NXP工业级单板机

    重磅新品登场!第二代高性能分布式IOi.MX6ULL核心板以及配套工业级单板机分布式IO与核心板部分型号参与送样文末了解详情↓↓↓M31-U系列高性能分布式远程IOM31-U系列高性能分布式IO主机
    的头像 发表于 05-29 19:33 865次阅读
    重磅新品登场!第二代高性能分布式IO模块、<b class='flag-5'>i.MX6ULL</b>核心板、NXP工业级单板机

    NXP i.MX 91开发板#支持快速创建基于Linux®的边缘器件

    NXP Semiconductors FRDM i.MX 91开发板设计用于评估i.MX 91应用处理器,支持快速创建基于Linux ^®^ 的边缘器件。该开发板还设计用于入门级Linux^®^ 用
    的头像 发表于 05-19 10:55 2002次阅读
    NXP <b class='flag-5'>i.MX</b> 91开发板#<b class='flag-5'>支持</b>快速创建基于Linux®的边缘器件

    「2025恩智浦创新技术峰会」飞凌嵌入式亮相上海首站

    ,展示其在低成本人工智能、工业物联网等领域的创新成果。此次峰会,飞凌嵌入式带来了基于恩智浦i.MX95xx、i.MX9352、i.MX8MPlus和i.MX6ULL
    的头像 发表于 05-15 13:38 1059次阅读
    「2025恩智浦创新技术峰会」飞凌嵌入式亮相上海首站

    ECB20-PG6Y28C-I 单板机深度测评报告 ——工业级嵌入式开发的强力助手

    ECB20-PG6Y28C-I 是成都亿佰特电子科技基于 i.MX6ULL 处理器推出的工业级测试底板,搭配 ECK20-6Y28C 系列核心板,专为高性能嵌入式场景设计。其核心亮点在于 双网口、多接口扩展能力 和 工业级可靠性
    的头像 发表于 04-22 11:49 895次阅读

    如何在i.MX6ULL睡眠时停止刷新LCD?

    为了更好的 EMC,我们需要在 i.MX6ULL 进入睡眠状态时停止 LCD 刷新。 能否实现 ? 平台: i.MX6ULL 系统: Linux
    发表于 04-03 07:14

    如何维护i.MX6ULL的安全内核?

    随着即将出台的 EU RED 3(3)def 和 EN 18031 法规,修复已知的漏洞至关重要。对于基于 i.MX 6ULL 的系统,在实践中如何做到这一点? 我们目前
    发表于 04-01 08:28

    如何在i.MX6ULL定制板上启用IO Expander PCA6416A的控制?

    我想知道如何在 i.MX6ULL 定制板上启用 IO Expander PCA6416A 的控制。 我尝试修改 imx6ul-14x14-evk.dtsi,将 pca6416 节点添加到 i
    发表于 03-26 07:10

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之USB_OTG

    i.MX6ULL有两路USB功能接口USB_OTG1和USB_OTG2,这两路USB都支持OTG功能。OTG是On-The-Go的缩写。简单地说,当具备OTG功能的设备(以i.MX6ULL为例)连接
    发表于 02-28 09:29

    飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之USB_OTG

    i.MX6ULL有两路USB功能接口USB_OTG1和USB_OTG2,这两路USB都支持OTG功能。OTG是On-The-Go的缩写。简单地说,当具备OTG功能的设备(以i.MX6ULL为例)连接
    发表于 02-27 09:16

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之ENET

    ELF 1开发板网络方案跟NXP i.MX6ULL EVK评估板的一样,所以这里就简单说明一下网络在内核设备树的配置。 硬件原理 由于两个网口涉及的引脚较多,而ELF 1开发板跟i.MX6ULL
    发表于 02-21 09:32

    飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之ENET

    ELF 1开发板网络方案跟NXP i.MX6ULL EVK评估板的一样,所以这里就简单说明一下网络在内核设备树的配置。 硬件原理 由于两个网口涉及的引脚较多,而ELF 1开发板跟i.MX6ULL
    发表于 02-20 08:47

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之Makefile修改

    /Makefile:我们使用的是i.MX6ULL平台,所以,编译器会编译生成CONFIG_SOC_IMX6ULL命令下.dtb文件,这些.dtb都应有其对应的.dts文件。如果我们因为板子硬件改动或硬件外设配置
    发表于 01-13 09:09

    飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之Makefile修改

    /Makefile:我们使用的是i.MX6ULL平台,所以,编译器会编译生成CONFIG_SOC_IMX6ULL命令下.dtb文件,这些.dtb都应有其对应的.dts文件。如果我们因为板子硬件改动或硬件外设配置
    发表于 01-10 09:23