Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國期間發(fā)起的一個公司內部項目,它是基于 dotCloud 公司多年云服務技術的一次革新,并于 2013 年 3 月以 Apache 2.0 授權協(xié)議開源,主要項目代碼在 GitHub 上進行維護。Docker 項目后來還加入了 Linux 基金會,并成立推動 開放容器聯(lián)盟(OCI)。
Docker 自開源后受到廣泛的關注和討論,至今其 GitHub 項目已經超過 4 萬 6 千個星標和一萬多個 fork。甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發(fā)實現的;Red Hat 則從 RHEL 6.5 開始對 Docker 進行支持;Google 也在其 PaaS 產品中廣泛應用 Docker。
Docker 使用 Google 公司推出的 Go 語言 進行開發(fā)實現,基于 Linux 內核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技術。由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器。最初實現是基于 LXC,從 0.7 版本以后開始去除 LXC,轉而使用自行開發(fā)的 libcontainer,從 1.11 開始,則進一步演進為使用 runC 和 containerd。
Docker 在容器的基礎上,進行了進一步的封裝,從文件系統(tǒng)、網絡互聯(lián)到進程隔離等等,極大的簡化了容器的創(chuàng)建和維護。使得 Docker 技術比虛擬機技術更為輕便、快捷。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處。傳統(tǒng)虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應用進程;而容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統(tǒng)虛擬機更為輕便。
本文介紹如何在BBB板子上把docker跑起來。
實施步驟:
一, 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.xz
da34b9ade435014a1ee232e3cda033688048f713b5108de3f77d843958dd0791 ubuntu-18.04-console-armhf-2018-06-08.tar.xz
解壓
tar xf ubuntu-18.04-console-armhf-2018-06-08.tar.xz
cd ubuntu-18.04-console-armhf-2018-06-08
插入SD卡到LINUX機器,ls /dev/sd*, 發(fā)現新插入的sd卡是/dev/sdc
把ubuntu安裝到SD卡
sudo ./setup_sdcard.sh --mmc /dev/sdc --dtb beaglebone
安裝后,拔下SD卡,插入BBB,上電后發(fā)現板子啟動有問題,卡死在這個地方
經分析認為是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::proxy="http://wwwgate.ti.com:80/" update
sudo apt-get -o Acquire::http::proxy="http://wwwgate.ti.com:80/" 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占有系統(tǒng)資源很少,5個container再加上后臺的服務,加在一起CPU占有率<5%。注:AM335X跑1GHZ主頻。
審核編輯:郭婷
-
Linux
+關注
關注
87文章
11345瀏覽量
210407 -
代碼
+關注
關注
30文章
4828瀏覽量
69058 -
虛擬機
+關注
關注
1文章
940瀏覽量
28428
發(fā)布評論請先 登錄
相關推薦
在AM335X平臺上運行ubuntu系統(tǒng)和docker容器的方法
am335x的芯片資料(中文手冊免費下載)
AM335x Sitara? Processors Technical Reference Manual
AM335x板卡穩(wěn)定性的應用方案
![<b class='flag-5'>AM335x</b>板卡穩(wěn)定性的應用方案](https://file.elecfans.com/web2/M00/49/C8/pYYBAGKhvF6Ac7J0AAAUlHVJSkc673.jpg)
TI 培訓 《TI AM335x在HMI系統(tǒng)中的應用》課程資料
![TI 培訓 《TI <b class='flag-5'>AM335x</b><b class='flag-5'>在</b>HMI<b class='flag-5'>系統(tǒng)</b>中的應用》課程資料](https://file.elecfans.com/web2/M00/4A/12/pYYBAGKhvJOARVl-AAA6JihQRf8932.png)
AM335x器件概述 AM335x處理器六大優(yōu)點
![<b class='flag-5'>AM335x</b>器件概述 <b class='flag-5'>AM335x</b>處理器六大優(yōu)點](https://file.elecfans.com/web1/M00/AA/5D/o4YBAF2pdU-ACPL8AAH2xEcULdM945.jpg)
Docker容器部署-以TI AM335x平臺為例
![<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署-以TI <b class='flag-5'>AM335x</b><b class='flag-5'>平臺</b>為例](https://file.elecfans.com/web2/M00/26/E2/poYBAGHALTKABsdLAAA7SzfqGis736.jpg)
評論