如何在Docker上运行Ubuntu Core

简介: 本文讲的是如何在Docker上运行Ubuntu Core,【编者的话】Snappy是一个极度精简的Ubuntu镜像,因为它可以快速部署在云端,并且提供了简便的基础功能组件更新,所以很多人用来在云端上构建(微)系统架构。
本文讲的是如何在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 

(如果你访问这个网址  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
目录
相关文章
|
3月前
|
存储 Ubuntu 自动驾驶
运行Udacity的MPC控制项目指南(project_10)在Ubuntu 18.04环境下
以上步骤应该能够帮助您成功设置并运行Udacity MPC控制项目,在此过程中您将学习如何应用模型预测控制理论去指导车辆沿着轨迹自主驾驶,在模拟环境下测试其效果。这个过程不但涵盖了理论知识也有实践操作,对于学习自动驾驶车辆控制系统非常有帮助。
145 15
|
6月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
468 12
|
6月前
|
Ubuntu 定位技术 TensorFlow
源码编译安装ROCm以运行tensorflow-rocm(适用于Ubuntu 23.04)
总结一番,完成这趟奇妙的技术之旅后,乐趣多多,还能享受 tensorflow-rocm 带来的便利和速度。这趟旅程需要耐心,勇气,以及对技术的热爱。朋友,做好准备,让你的Ubuntu系统展翅高飞吧!
323 9
|
6月前
|
Ubuntu 机器人 开发者
Docker环境下的ROS Noetic:Ubuntu 20.04 系统下的解决方案
这就是在Docker环境下安装ROS Noetic在Ubuntu 20.04系统的一种简单方法,希望能对你有所帮助。
688 16
|
7月前
|
Ubuntu 安全
Ubuntu中遇到"无法创建临时文件"/tmp/..."在普通或root用户运行apt-get update时的错误解决办法
这些步骤当然不能涵盖所有可能出现问题的场合,但是能覆盖大多数常见的情景。希望这些信息能帮到你解决"无法创建临时文件"/tmp/..."这样的问题。不过,请记住,因为修改系统文件和目录的权限,清理临时文件,或者运行磁盘检查,都可能对系统造成影响,所以执行这些操作前要先确认这是安全的,必要时最好先做好数据备份。
447 10
|
8月前
|
Ubuntu 安全 网络安全
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
544 21
|
8月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
259 17
|
8月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
391 23

热门文章

最新文章