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安裝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*, 發現新插入的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::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占有系統資源很少,5個container再加上后臺的服務,加在一起CPU占有率<5%。注:AM335X跑1GHZ主頻。
審核編輯:郭婷
-
Linux
+關注
關注
87文章
11296瀏覽量
209364 -
代碼
+關注
關注
30文章
4780瀏覽量
68539 -
虛擬機
+關注
關注
1文章
914瀏覽量
28163
發布評論請先 登錄
相關推薦
評論