嵌入式linux docker,Docker之嵌入式开发之应用

Docker

Docker是什么

Docker 利用 Linux 核心中的资源分脱机制,例如 cgroups,以及 Linux 核心名字空间(name space),来创建独立的软件容器(containers),属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker 在容器的基础上进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护,使得其比虚拟机技术更为轻便、快捷。Docker 可以在单一 Linux 实体下运作,避免因为创建一个虚拟机而造成的额外负担。

29ef44ee65b7749f029514e3e03388de.png

对于虚拟机技术来说,传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用。每一个虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统

90e0630b4d736e30f70c3dc38c5a9ea2.png

容器技术和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器内没有自己的内核,也没有进行硬件虚拟。

具体来说与虚拟机技术对比,Docker 容器的优势:

启动快

资源占用少

体积小

何时会用到Docker

可能对于我, 主要就是应对不同的开发环境配置. 另外, Docker现在也支持windows了. 对于yocto这种需要耗费巨大磁盘空间的, 还是在Linux服务器上搭建, 像micro:bit这种, 可以在Windows上安装docker, 创建一个Linux容器来做了

环境配置

以下是我前面遇到的问题:

Linux开发, yocto需要用到python3, 而且仅支持Ubuntu 16.04以上的系统, 我本地是Manjaro Linux或者Ubuntu 14.04, 那么意味着我要么重新装系统, 要么硬着头皮上, 解决各种包兼容的问题

micro:bit开发, 用到的yotta和PXT, 同样依赖确定版本的python和node.js, 另外还要另一个问题, 开发环境一直在不断更新, 比如半年前准备的开发环境已经不再适用了

多人协作的问题

多个开发人员使用的开发环境不一致, 可能导致难以意料的问题

多个开发人员都需要去准备这样的一个环境, 重复造轮子

安装

还是老实的看官方的文档吧, 有些其他人的博客可能写的不是很全面.

Note: The lsb_release -cs sub-command below returns the name of your Ubuntu distribution, such as xenial. Sometimes, in a distribution like Linux Mint, you might need to change $(lsb_release -cs) to your parent Ubuntu distribution. For example, if you are using Linux Mint Rafaela, you could use trusty.

无需每次使用sudo

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立 docker 组:

$sudogroupadd docker

将当前用户加入 docker 组:

$sudousermod -aG docker $USER

退出当前终端并重新登录,进行如下测试。

更改Docker数据存储的位置

Docker所下载的image, 生成的containers, 甚至包括持久化数据用的vollume, 默认都会保存到 /var/lib/docker目录下, 而我目前所使用的2.58, /目录只有100G, 现在只有30G空间了, 编译yocto肯定不可行了, 需要把位置移动到/home下面.

# 停止docker服务

# sudo sysemctl stop docker

$sudoservice docker stop

# 更改配置文件

# 配置文件是默认不存在的, 默认位置如下, 当然也可以换成其他路径

# 填入以下内容, 指向新的位置

$sudonano /etc/docker/daemon.json

{

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值