Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务威廉希尔官方网站 的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等威廉希尔官方网站 ,对进程进行封装隔离,属于 操作系统层面的虚拟化威廉希尔官方网站 。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 威廉希尔官方网站 比虚拟机威廉希尔官方网站 更为轻便、快捷。
下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机威廉希尔官方网站 是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
本文介绍如何在BBB板子上把docker跑起来。下面这个链接是BBB的软硬件资料:
http://www.ti.com/tool/beaglebk
实施步骤:
一, BBB安装ubuntu。(本文的操作主机是一台ubuntu 1604的PC机。)
Ubuntu安装到BBB的参考链接:
https://elinux.org/BeagleBoardUbuntu#Ubuntu_.2818.04.29
操作步骤如下,首先
wget https://rcn-ee.com/rootfs/2018-06-08/elinux/ubuntu-18.04-console-armhf-2018-06-08.tar.xz
然后验证
sha256sum ubuntu-18.04-console-armhf-2018-06-08.tar.xzda34b9ade435014a1ee232e3cda033688048f713b5108de3f77d843958dd0791 ubuntu-18.04-console-armhf-2018-06-08.tar.xz
解压
tar xf ubuntu-18.04-console-armhf-2018-06-08.tar.xzcd ubuntu-18.04-console-armhf-2018-06-08
插入SD卡到LINUX机器,ls /dev/sd*, 发现新插入的sd卡是/dev/sdc
把ubuntu安装到SD卡
sudo 。/setup_sdcard.sh --mmc /dev/sdc --dtb beaglebone
安装后,拔下SD卡,插入BBB,上电后发现板子启动有问题,卡死在这个地方
经分析认为是MLO和UBOOT有问题。重新下载了老版本的MLO UBOOT.在如下链接:
https://rcn-ee.com/repos/bootloader/am335x_boneblack/
下载MLO-am335x_boneblack-v2017.11-rc4-r4和u-boot-am335x_boneblack-v2017.11-rc4-r4.img
分别通过命令
sudo dd if=MLO-am335x_boneblack-v2017.11-rc4-r4 of=/dev/sdc count=1 seek=1 bs=128k
sudo dd if=u-boot-am335x_boneblack-v2017.11-rc4-r4.img of=/dev/sdc count=2 seek=1 bs=384k
把MLO和UBOOT写入SD卡,重新上电BBB
启动成功,用户名ubuntu密码temppwd。
二,安装运行docker
如果电脑需要通过代理才能访问外网,apt-get需要代理服务器支持
sudo apt-get -o Acquire::http::prox update
sudo apt-get -o Acquire::http::prox install docker.io
配置docker代理
在bbb板子上,sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
添加如下
然后输入命令,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl show --property=Environment docker
至此docker代理配置完毕。
三,测试docker
先跑个hello-world, docker先检查本地有没有hello-world,如果没有就到服务器上下载。
再跑个ubuntu bash,可以看到控制终端切换掉了。
同时跑一个centos,一个ubuntu,3个nginx server,总共5个container:
Docker是一个很轻量级的应用,docker container占有系统资源很少,5个container再加上后台的服务,加在一起CPU占有率《5%。注:AM335X跑1GHZ主频。
审核编辑:何安
-
嵌入式处理
+关注
关注
0文章
341浏览量
10026
发布评论请先 登录
相关推荐
评论