跳转到内容

开发板 Docker 环境构建方法

1.1. Docker 简介

Docker 是目前使用最广泛的开源容器引擎,可为每个应用程序提供完全隔离的运行环境。用户可以在环境中配置各种工具和软件,不同环境之间不会相互影响。目前已完成对 EASY-EAI-Nano 的适配,用户可以随时随地进行部署。Dockerfile、Image(镜像)、Container(容器)是 Docker 中的三个重要概念。通过 Image 可以创建多个 Container,而通过 Dockerfile 这一自动化脚本可以创建 Image。

**Dockerfile**:也称为镜像描述文件,是包含用于构建镜像的命令的文本文档,也可以称为“脚本”。用户通过 `docker build` 命令读取 Dockerfile 中的指令和安装步骤,自动生成镜像。

**Image(镜像)**:一种文件系统,用于提供容器运行时所需的文件和参数配置。它相当于平时使用某个软件时下载的安装包,也相当于安装操作系统(OS)时所需的 ISO 文件。

**Container(容器)**:一种与环境无关的软件打包方式。应用程序的所有代码、库以及依赖的配置项都会被打包到容器中。与虚拟机不同,容器不会创建完整的虚拟操作系统,而是允许应用程序使用与其运行系统相同的 Linux 内核。此外,应用程序只需与主机上尚未运行的内容(所需依赖项)一同提供即可。

1.1. Docker 简介 图1

1.1. Docker 简介 图1

1.2. Docker 环境构建

1.2.1 安装 Docker

进入开发板环境,更新软件包数据库后安装 Docker。

Terminal window
adb shell

1.2.1 安装 Docker 图2

1.2.1 安装 Docker 图2

Terminal window
apt-get update

1.2.1 安装 Docker 图3

1.2.1 安装 Docker 图3

Terminal window
apt-get install docker.io

1.2.1 安装 Docker 图4

1.2.1 安装 Docker 图4

Terminal window
docker version

1.2.1 安装 Docker 图5

1.2.1 安装 Docker 图5

1.2.2 获取镜像

根据需要获取镜像。也可以配置国内镜像源。

Terminal window
sudo vim /etc/docker/daemon.json
Terminal window
{"registry-mirrors":\["https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://ueo0uggy.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://cf-workers-docker-io-apl.pages.dev"\]}

保存并退出编辑器,然后重启 Docker 服务。

Terminal window
sudo systemctl restart docker
Terminal window
docker pull ubuntu

1.2.2 获取镜像 图6

1.2.2 获取镜像 图6

由于此方法未指定标签,Docker Engine 会使用 :latest 作为默认标签拉取镜像。 另一种方法是将镜像保存为本地文件,并直接使用生成的文件进行共享。 查看本地机器上已保存(下载)的镜像信息列表:

Terminal window
docker images

1.2.2 获取镜像 图7

1.2.2 获取镜像 图7

1.2.3 Docker 容器运行与基本操作

启动容器有两种方法。方法 1:使用 Docker 镜像的 TAG(标签:指特定的镜像快照)启动。方法 2:使用 ImageID(镜像 ID:镜像对应的唯一识别码)启动。下面演示【使用 Docker 镜像的 TAG】启动容器的方法。

Terminal window
docker run -t -i ubuntu:latest /bin/bash

* -t:在 Ubuntu 容器内分配一个伪终端(pseudo-TTY)。

* -i:通过从容器获取标准输入(STDIN),可以创建交互式连接。

* ubuntu:latest:标签为 latest 的 Ubuntu Docker 镜像。

* /bin/bash:新容器的 BASH shell。这是可选项。如果不指定 shell,则会为容器分配默认 shell。

启动容器后,会自动进入容器的 shell(命令行)。

1.2.3 Docker 容器运行与基本操作 图8

1.2.3 Docker 容器运行与基本操作 图8

按下 CTRL+P 后再按 CTRL+Q 即可从当前容器中分离(detach),并返回主机系统终端。注意:这只是从容器中分离,并不表示停止容器。容器仍会在后台继续运行。

在 Docker 主机终端中执行以下命令,查找容器名称和 ID:

Terminal window
docker ps -a

1.2.3 Docker 容器运行与基本操作 图9

1.2.3 Docker 容器运行与基本操作 图9

找到 ID 后,即可对容器执行相关操作。

暂停和恢复正在运行的容器

Terminal window
docker pause DockerID
docker unpause DockerID

1.2.3 Docker 容器运行与基本操作 图10

1.2.3 Docker 容器运行与基本操作 图10

启动容器

Terminal window
docker start Docker名

1.2.3 Docker 容器运行与基本操作 图11

1.2.3 Docker 容器运行与基本操作 图11

删除容器

首先,需要结束(停止)正在运行的容器。

Terminal window
docker stop DockerID

1.2.3 Docker 容器运行与基本操作 图12

1.2.3 Docker 容器运行与基本操作 图12

当所有容器都不再需要时,逐个删除多个容器会比较繁琐。因此,可以批量删除所有已停止的容器。要批量删除所有已停止的容器,请执行以下命令:

Terminal window
docker container prune

1.2.3 Docker 容器运行与基本操作 图13

1.2.3 Docker 容器运行与基本操作 图13

删除后执行 docker ps -a 查看所有容器时,会显示列表为空。

1.2.3 Docker 容器运行与基本操作 图14

1.2.3 Docker 容器运行与基本操作 图14

删除 Docker 镜像

Terminal window
docker rmi 镜像ID

1.2.3 Docker 容器运行与基本操作 图15

1.2.3 Docker 容器运行与基本操作 图15