在线教育|嵌入式开发:面向嵌入式软件开发人员的 Docker 简介

在线教育|嵌入式开发:面向嵌入式软件开发人员的 Docker 简介

文章图片

在线教育|嵌入式开发:面向嵌入式软件开发人员的 Docker 简介

在过去的几年里 , Docker席卷了软件行业 。 Docker为嵌入式开发人员提供了一个“用于开发、发布和运行应用程序的开放平台” 。 docker提供的主要优势是 , 它可以通过在容器中构建环境来将应用程序与其运行的基础设施分开 , 然后可以在几乎任何开发平台上执行容器 , 为开发人员提供相同的环境 。
在这篇文章中 , 我们将探讨Docker以及嵌入式软件开发人员如何使用它来改进他们的开发环境 。
Docker在嵌入式软件开发中的使用
开发人员可以将Docker用于多种用途 , 但嵌入式软件开发人员最感兴趣的有两个 。
首先 , 开发人员可以使用他们的构建环境构建一个可移植的容器 。 这可确保每个开发人员都使用相同的工具和开发环境 。 新开发人员可以通过为他们提供对源代码和用于构建Docker 映像的相关Docker文件的访问权限 , 几乎立即启动并运行 。 这可以缓解所有关于软件未构建、拥有正确的库、路径等的问题和讨论 。
其次 , 开发人员可以构建一个DevOps管道 , 利用他们的容器来自动化构建、测试、分析和部署 。 自动化DevOps是一个非常强大的概念 , 对于成功使用它们的任何企业都非常有价值 。 大多数管道开发需要一些安装了构建和测试环境的虚拟机或容器 。 嵌入式开发人员可以利用Docker 创建这个环境 , 并使用Jenkins 和Gitlab 等工具来构建他们的DevOps 系统 。
Dockerfile基础知识
Docker容器由Docker 文件构建 , 通常称为Dockerfile , 它是一个文本文件 , 包含构建Docker 容器所需的所有命令 。 例如 , 许多 Dockerfile将以FROM 命令开始 , 该命令指定构建Dockerfile 的现有docker 映像 。 有不同的选项 , 例如:
它使用最新的Ubuntu 映像作为基础 , 使用gcc 的人可能会使用类似的东西:
FROMgcc:11.2.0
它使用特定版本的gcc 。 (也可以使用FROM gcc:latest) 。
另一个常用命令是WORKDIR 。 这指定了可能出现的任何命令(如RUN、CMD、ADD、COPY、ENTRYPOINT)的工作目录 。
一个Docker文件将包含设置开发环境所需的尽可能多的命令 。 但是 , 文件本身并不是Docker容器 。 要使用容器 , 我们需要先构建它 。

构建Docker 容器
一旦Docker文件包含构建映像所需的所有命令 , 就可以通过发出如下构建命令来构建映像:
##构建docker映像
image:
dockerbuild -t beningo/gcc-arm .
在上述命令中 , 调用docker 来构建当前目录中存在的Dockerfile 。 -t 是标签参数 。 在这种情况下 , 我将新创建的图像标记为beningo/gcc-arm 。 例如 , 如果我运行命令:
dockerimages
我应该会收到我创建的所有Docker 映像的列表:
【在线教育|嵌入式开发:面向嵌入式软件开发人员的 Docker 简介】
标签帮助我们识别映像 。 如您所见 , 我有一张我没有标记的映像 。 了解映像是什么很有帮助 。 由于映像很容易达到2GB , 因此如果有人不小心 , 它们会很快占用大量硬盘空间!
运行Docker 映像
构建Docker 容器后 , 我们要运行映像 。 我们可以使用 dockerrun 命令在映像中运行命令 , 也可以使用-it以交互方式与映像交互 , 这将允许我们通过终端界面访问我们正在运行的映像 。 运行docker 映像的常用命令如下所示:
dockerrun –rm -it beningo/gcc-arm
–rm告诉Docker我们要在退出卷时删除它 。 如果我想访问本地目录中的源代码 , 我还可以使用如下命令: