如何在Docker上运行Ubuntu Core

本文讲的是如何在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 nbd0p3
# mount -r /dev/nbd0p3 nbd0p3

步骤四:创建一个基于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-webserver  Snappy包管理器。
# docker run -p 8000:80 ubuntu-core:alpha-3 /bin/sh -c 'Snappy install xkcd-webserver 

原文链接:Running Ubuntu Snappy inside Docker(翻译:隋鑫 审校:魏小红)

原文发布时间为:2015-06-17 
本文作者:jeffsui 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:如何在Docker上运行Ubuntu Core
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/224844

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。