如何在Docker上運行Ubuntu Core
Snappy是一個極度精簡的Ubuntu鏡像,因為它可以快速部署在云端,并且提供了簡便的基礎功能組件更新,所以很多人用來在云端上構建(微)系統架構。很可惜Snappy并不包含在Docker的官方鏡像中,本文通過一個實例演示了如何在Docker中運行Ubuntu Core鏡像,并構建自己的Snappy容器。文章短小精悍,希望能給使用Snappy系統并希望用Docker來構建系統架構的人一些有益的借鑒。
有很多人已經聽說過 Ubuntu Core的大名,沒聽過也不要緊, Ubuntu Core 是一個極度精簡的ubuntu版本。它通過Snappy(一個包管理器)來運行一些基本服務并提供主要的功能組件更新。Ubuntu Core 提供輕量級的基本運行時系統,給使用者以快速部署和方便的持續更新功能。并且在它上面還使用了 security model 。
上述這些令人激動的特性使得Snappy可以快速部署在云平臺上。與此同時,人們已經開始考慮使用它在云端上來構建他們自己的(微)服務架構。就在幾周前,一個用戶在 Ask Ubuntu 上提問題:Can I run Snappy Ubuntu Core as a guest inside Docker? 。問題在于Ubuntu Core并不包含在Docker提供的官方鏡像庫中,所以我們自己手動創建鏡像了。下面是一個例子:
創建 Docker 鏡像
步驟一: 獲取最新的Ubuntu Core鏡像
截止發稿時為止,Ubuntu Core 的版本是 alpha 3 ,下載地址為 :$ wget http://cdimage.ubuntu.com/ubuntu-core/releases/alpha-3/ubuntu-core-WEBDM-alpha-03_amd64-generic.img.xz
(如果你訪問這個網址 cdimage.ubuntu.com,可以獲取帶有hash簽名的版本)
下載的鏡像是通過XZ方式壓縮的,所以要通過下面的命令解壓:
$ unxz ubuntu-core-WEBDM-alpha-03_amd64-generic.img.xz
步驟二: 使用qemu-nbd方式連接鏡像
解壓后的文件不是普通的文件格式,上一個版本(Alpha 2)鏡像是QCOW2文件格式,為了能夠使用這個鏡像內容,我們有幾個解決方案。這里我介紹其中的一種,既可以使用文件系統又可以使用QCOW2鏡像的方式。下面的小技巧包含使用qemu-nbd(一個基于 qemu-utils)的工具包):# qemu-nbd -rc /dev/nbd0 ubuntu-core-WEBDM-alpha-03_amd64-generic.img
運行上面的命令將會創建一個名為/dev/nbd0的虛擬設備,并且創建 名為/dev/nbd0p1、/dev/nbd0p2,諸如此類的虛擬分區,可以通過 使用fdisk -l /dev/nbd0命令,查看關于QCOW2鏡像相關的信息。
步驟三: 掛載文件系統
例如我們感興趣的是/dev/nbd0p3,我們通過下面的命令來掛載分區:# mkdir nbd0p3mount -r /dev/nbd0p3 nbd0p3</pre>
步驟四:創建一個基于docker的基礎鏡像
建議閱讀 Docker官方手冊,創建一個簡單的Docker基礎鏡像。
tar -C nbd0p3 -c . | docker import - ubuntu-core alpha-3
通過運行docker images命令,我們可以查看我們剛剛創建的Docker鏡像。
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu-core alpha-3 f6df3c0e2d74 5 seconds ago 543.5 MB
通過這個命令docker run ubuntu-core:alpha-3 Snappy,讓我們驗證一下Snappy是否可以訪問:
# docker run ubuntu-core:alpha-3 Snappy Usage:Snappy [-h] [-v] {info,versions,search,update-versions,update,rollback,install,uninstall,tags,config,build,booted,chroot,framework,fake-version,nap} ...
如果看到上面的信息,那么恭喜你,已經成功將Ubuntu Core融入到Docker鏡像中,第一次運行了Snappy容器。
安裝軟件
廢話不多說,下面演示如何在docker中安裝并運行xkcd-webserverSnappy包管理器。
# docker run -p 8000:80 ubuntu-core:alpha-3 /bin/sh -c 'Snappy install xkcd-webserver
原文鏈接:Running Ubuntu Snappy inside Docker(翻譯:隋鑫 審校:魏小紅)來自:
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!