Docker编译openwrt

本文档详细介绍了如何使用Docker构建一个专用于OpenWrt编译的系统环境容器,以确保编译环境的一致性,提高效率和成功率。内容包括Docker的基础知识、特点、与虚拟机的区别、Docker引擎和架构,以及Docker的安装、镜像加速、基本使用方法。此外,还提供了两种编译OpenWrt的方法:配置编译环境容器和构建镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

使用 Docker 去构建一个专门用于 Open­Wrt 编译的系统环境容器. 这样的好处是编译的过程始终在容器内进行,可以保持编译环境的高度一致性,基本上杜绝了因编译环境不同导致的编译失败的情况,有助于提高效率和编译成功率,同时省去了对编译环境的重复配置。

docker可以认为是一个轻量化的虚拟机。从别的地方获取镜像(只读的),然后docker run运行镜像创建一个“虚拟机”。这个虚拟机里面的内容一般不会被保存,但是可以将物理机的目录挂在到“虚拟机上”实现修改宿主机上的东西,类似于VMware的共享目录。

  1. Docker基础

什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用免费的社区版就可以了。

Docker特点

在学习一项技术时,了解该技术的特点才能更好地实际运用。Docker 作为当前主流的一个开源容器引擎,其主要特点如下。

.更快速的交付和部署

开发者可以使用一个标准的Docker镜像来构建一套开发容器, 开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器以及快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器轻,且启动速度快,可以大量地节约开发、测试和部署的时间。

.更高效的虚拟化

Docker容器在运行时,不需要额外的虚拟机程序的支持。由于它是内核级的虚拟化,所以可以实现更高的性能和效率。

.更轻松的迁移和扩展

Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人计算机和服务器等。这种良好的兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台,十分有利于应用的迁移和扩展。

.更简单的管理

使用Docker, 只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

除上述几个特点外,Docker还具有实现逻辑分离、适合与面向服务的架构配合使用等特点。

Docker与虚拟机的区别

https://i-blog.csdnimg.cn/blog_migrate/5ea253c96e217a73b0fde737e4495b17.jpeg

Docker的引擎

https://i-blog.csdnimg.cn/blog_migrate/158721ad54f43482ae7efc4562beb7f2.jpeg

Docker Engine 中包含了三个核心组件(Docker CLI,REST API和Docker daemon),这三个组件的具体说明如下。

dockerCLI ( command line interface ):

表示Docker命令行接口,开发者可以在命令行由使用Docker相关指令与Docker守护进程进行交互,从而管理诸如image (镜像) container(容器人network (网络)和data volumes (数据卷)等实体。

REST API:

表示应用程序API接口,开发者通过该API接口可以与Docker的守护进程进行交互,从而指示后台进行相关操作。

docker daemon:

表示Docker的服务端组件,它是Docker架构中运行在后台的一个守护进程,可以接收并处理来自命令行接口及API接口的指令,然后进行相应的后台操作。

对于开发者而言,既可以使用编写好的脚本文件通过REST API来实现与Docker进程交互,也可以直接使用Docker相关指令,通过命令行接口来与Docker进程交互,而其他一些Docker应用则是通过底层的API和CLI进行交互的。

Docker架构

https://i-blog.csdnimg.cn/blog_migrate/6e2c062e1bda7fb6a0f848b00102841d.jpeg

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker

面向对象

容器

对象

镜像

概念

说明

Docker 镜像(Images)

Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。

Docker 容器(Container)

容器是独立运行的一个或一组应用,是镜像运行时的实体。

Docker 客户端(Client)

Docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值