Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國期間發(fā)起的一個公司內(nèi)部項目,它是基于 dotCloud 公司多年云服務(wù)技術(shù)的一次革新,并于 2013 年 3 月以 Apache 2.0 授權(quán)協(xié)議開源,主要項目代碼在 GitHub 上進(jìn)行維護(hù)。Docker 項目后來還加入了 Linux 基金會,并成立推動 開放容器聯(lián)盟(OCI)。
Docker 自開源后受到廣泛的關(guān)注和討論,至今其 GitHub 項目已經(jīng)超過 4 萬 6 千個星標(biāo)和一萬多個 fork。甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發(fā)實現(xiàn)的;Red Hat 則從 RHEL 6.5 開始對 Docker 進(jìn)行支持;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用 Docker。
Docker 使用 Google 公司推出的 Go 語言 進(jìn)行開發(fā)實現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術(shù),對進(jìn)程進(jìn)行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。最初實現(xiàn)是基于 LXC,從 0.7 版本以后開始去除 LXC,轉(zhuǎn)而使用自行開發(fā)的 libcontainer,從 1.11 開始,則進(jìn)一步演進(jìn)為使用 runC 和 containerd。
Docker 在容器的基礎(chǔ)上,進(jìn)行了進(jìn)一步的封裝,從文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)到進(jìn)程隔離等等,極大的簡化了容器的創(chuàng)建和維護(hù)。使得 Docker 技術(shù)比虛擬機(jī)技術(shù)更為輕便、快捷。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處。傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應(yīng)用進(jìn)程;而容器內(nèi)的應(yīng)用進(jìn)程直接運行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核,而且也沒有進(jìn)行硬件虛擬。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便。
本文介紹如何在BBB板子上把docker跑起來。
實施步驟:
一, BBB安裝ubuntu。(本文的操作主機(jī)是一臺ubuntu 1604的PC機(jī)。)
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機(jī)器,ls /dev/sd*, 發(fā)現(xiàn)新插入的sd卡是/dev/sdc
把ubuntu安裝到SD卡
sudo ./setup_sdcard.sh --mmc /dev/sdc --dtb beaglebone
安裝后,拔下SD卡,插入BBB,上電后發(fā)現(xiàn)板子啟動有問題,卡死在這個地方
經(jīng)分析認(rèn)為是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
如果電腦需要通過代理才能訪問外網(wǎng),apt-get需要代理服務(wù)器支持
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,如果沒有就到服務(wù)器上下載。
再跑個ubuntu bash,可以看到控制終端切換掉了。
同時跑一個centos,一個ubuntu,3個nginx server,總共5個container:
Docker是一個很輕量級的應(yīng)用,docker container占有系統(tǒng)資源很少,5個container再加上后臺的服務(wù),加在一起CPU占有率<5%。注:AM335X跑1GHZ主頻。
審核編輯:郭婷
-
Linux
+關(guān)注
關(guān)注
87文章
11212瀏覽量
208724 -
代碼
+關(guān)注
關(guān)注
30文章
4723瀏覽量
68240 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
905瀏覽量
28022
發(fā)布評論請先 登錄
相關(guān)推薦
評論