如何在开发板上安装并运行docker
一、Docker的基本概念
1. 镜像(Image):镜像是一个只读模板,包含了运行容器所需的所有文件和设置。可以把它理解成一个类的模板,通过它可以创建容器实例。
2. 容器(Container):容器是镜像的一个运行实例,提供了独立的运行环境。容器内运行着应用程序,并且拥有自己独立的文件系统、网络等资源。容器可以被启动、停止、删除和复制。
3. 仓库(Repository):仓库是存储和分享镜像的地方。可以从仓库中拉取镜像,并将自己创建的镜像推送到仓库中。Docker Hub是最流行的Docker镜像仓库之一。
二、Docker的特点
1. 轻量级:相比传统虚拟机,Docker容器更加轻量级。它共享操作系统内核,启动时间更快,资源消耗更低。
2. 灵活性和可移植性:Docker容器可以在任何支持Docker的环境中运行,无论是开发机、测试环境还是生产环境。这意味着可以轻松地在不同的环境中部署和移植应用程序。
3. 资源隔离:每个Docker容器都是独立运行的,相互之间不会影响。这种隔离性提供了更高的安全性。
4. 易于扩展和管理:Docker提供了丰富的命令行工具和API,方便开发者进行集群管理和扩容操作。
5. 一致的运行环境:Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境的一致性。
三、Docker的用途
1. 提供一次性的环境:如本地测试他人的软件、持续集成时提供单元测试和构建的环境。
2. 提供弹性的云服务:因为Docker容器可以随开随关,很适合动态扩容和缩容。
3. 组建微服务架构:通过多个容器,一台机器可以运行多个服务,因此在本机就可以模拟出微服务架构
四、在开发板上搭建docker环境
首先需要检测内核是否支持
在源码根目录下执行如下指令检测:
./kernel-6.1/check-config.sh
结果如下,如果出现某些项为false的话,可在相应的config文件中加上就可以。
内核支持后,在终端操作如下:
1、更新软件包列表
aptupdate
2、安装依赖包:
sudo apt install apt-transport-httpsca-certificatescurlsoftware-properties-common
3、添加Docker官方的GPG密钥
curl -fsSLhttps://download.docker.com/linux/debian/gpg | sudo apt-key add -
4、添加Docker软件包仓库
add-apt-repository"deb [arch=arm64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
执行指令vi /etc/apt/sources.list进入文件把该行放开
5、更新软件包列表
aptupdate
6、安装Docker Engine
apt install docker-ce -y
7、查看版本
docker--version
8、docker默认使⽤iptableslegacy
9、安装完后查看状态update-alternatives --setiptables /usr/sbin/iptables-legacyupdate-alternatives --setip6tables /usr/sbin/ip6tables-legacy
10、修改镜像加速连接,内容如下sudo systemctl restart dockersudo systemctlstatus docker
11、拉取镜像:sudo vim /etc/docker/daemon.json//{"registry-mirrors": ["https://x9r52uz5.mirror.aliyuncs.com","https://dockerhub.icu","https://docker.chenby.cn","https://docker.1panel.live","https://docker.awsl9527.cn","https://docker.anyhub.us.kg","https://dhub.kubesre.xyz","https://ung2thfc.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]}
12、进入镜像:docker pull -adebian拉取所有镜像docker pull debian:10(拉取其中的一个)
docker run -t -i debian:10 /bin/bash
五、说明
镜像的获取方式有很多,也不尽相同,但最重要的是,内核必须支持,要不然你怎么尝试都是会报错的。docker运行第三方代码不会影响系统本身的其他程序,还是很好用的,目前接触的很多合作项目都是基于linux系统在docker上运行自己的应用程序。
