Docker制作私有的基础镜像
debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包含了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小很多,当然功能也没那么强大,因此,只能说是“基本的系统”。
fedora下(centos亦可用)有类似功能的工具:febootstrap。观察这两个工具名称,可以看到debootstrap使用debian前缀“de”,而febootstrap使用fedora前缀“fe”,bootstrap含义为“引导”,并如果做过LFS的话,对它了解会比较多,而在编译gcc编译器时也有涉及到这个概念。不过debootstrap或febootstrap似乎没有表达出“引导”的意思。
制作根文件系统,在PC上最全面的莫过于LFS(linux form scratch,从头做一个linux系统),而嵌入式中,busybox是不二之选。当然,随着芯片的强大及一些linux发行版本的进化,也有桌面系统直接用于嵌入式领域中,比如ubuntu,就有支持硬件浮点的工具直接下载。
ubuntu默认没有安装debootstrap,安装十分简单,执行下列命令即可:
sudo apt-get install debootstrap
使用也十分简单,命令格式为:
sudo debootstrap --arch [平台] [发行版本代号] [目录]
sudo debootstrap --arch [平台] [发行版本代号] [目录]
比如下面的命令
sudo debootstrap --arch i386 trusty /mnt
即是构建x86(32位)平台ubuntu最新发行版14.04(代号为trusty)的基本系统,存放到/mnt目录下。
当前debootstrap支持的发行版本可以在/usr/share/debootstrap/scripts查看,而各发行版代号,可以到http://en.wikipedia.org/wiki/List_of_Ubuntu_releases查看。比如gutsy是7.10的代号,precise是12.04的代号,等等。
输入上述命令后,就会从网络下载相关的文件,当看到
I: Configuring python-central...
I: Configuring ubuntu-minimal...
I: Configuring libc-bin...
I: Configuring initramfs-tools...
I: Base system installed successfully.
即表示成功。如果看到
E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/trusty/Release
或卡在
I: Retrieving Release
则可能是网络原因。
下载的文件在/mnt/var下,如:
$ tree
.
├── debootstrap
│ ├── debootstrap.log
│ └── debpaths
└── var
├── cache
│ └── apt
│ └── archives
│ ├── adduser_3.113+nmu3ubuntu3_all.deb
│ ├── apt_1.0.1ubuntu2_i386.deb
其中adduser_3.113是14.04对应的adduser。从这里也可以确认其下载的是哪一发行版的软件。
下面使用chroot进入/mnt目录,并查看linux版本。
latelee@ubuntu:~$ cd /mnt/
latelee@ubuntu: /mnt$ ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
latelee@ubuntu: /mnt$ sudo -s
[sudo] password for latelee:
root@ubuntu: /mnt# chroot .
root@ubuntu:/# ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
root@ubuntu:/# cat etc/issue
Ubuntu 14.04 LTS \n \l
root@ubuntu:/# ls /proc/ -l
total 0
root@ubuntu:/# ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
root@ubuntu:/# uname -a
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux
因为当然系统使用的并不这个新的系统,因此/proc并没有内容,而内核依然是当前系统所用的版本。
使用光盘不成功
W: Failure trying to run: chroot /home/latelee/test_sys mount -t proc proc /proc
W: See /home/latelee/test_sys/debootstrap/debootstrap.log for details
注:
本文并没有过多技术含量,仅是在学习过程中碰见了debootstrap而写点笔记。本文所用环境均是虚拟机vmware。
附录:
未完事宜:
限于时间,目前还没有实际启动新的系统。
一些涉及到ubuntu根文件系统构建的资源:
https://wiki.ubuntu.com/DebootstrapChroot
https://help.ubuntu.com/10.04/installation-guide/i386/linux-upgrade.html
http://www.thegeekstuff.com/2010/01/debootstrap-minimal-debian-ubuntu-installation/
https://help.ubuntu.com/lts/installation-guide/i386/index.html
查看ubuntu各发行版本wiki:
http://en.wikipedia.org/wiki/List_of_Ubuntu_releases
查看ubuntu安装包:
后记:本想写稍有点技术含量的文章,把过程所涉及到的知识点都提及,但发现自己文笔不复如前,还是按流水账那样写出来比较畅快些。
李迟,写于2014年10月20日中午休息前
近来经济拮据,如本文对阁下有帮助,可慷慨解囊赞助笔者以输出更多好文章。
支付宝readchy@163 或 微信fly_camel_fly 均可。感谢!

本文固定链接: http://www.latelee.org/using-gnu-linux/ubuntu-debootstrap.html
你可能感兴趣的文章
- ubuntu系统debootstrap的使用之二:启动
- 遇到一个Linux文件系统因bios时间错误变成只读的问题
- Ubuntu定制live cd
- linux之行(4):上手
- linux下时区的一些认识
- Linux下小型web服务器boa的使用
- Linux下doxygen的使用
- 让ubuntu开机快一点:记开机出现Waiting for network configuration…
- Ubuntu日志的一些笔记
- minicom的使用
- linux时区的几个代码片段
- Linux使用tcpdump抓获取WIFI包
目前暂无评论
发表评论
昵称 *
邮箱 *
网址

快捷键:Ctrl+Enter
致谢
让我在黑暗到看到一线曙光;
在寒冷中感到一丝温暖。
愿你们健康快乐!万事顺利!
老大、木木、小桂子、小郭、小蟹、老尧,识得你们是莫大的荣幸!
公告
但会在能力范围内为各位解答(直接要代码/答案的可免)。
初心不变,我还是我。
——李迟
近期文章
热门文章
- Linux查看CPU型号及内存频率及其它信息的命令( 50,795)
- ld命令( 44,643)
- 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI( 43,876)
- ubuntu系统debootstrap的使用之二:启动( 41,558)
- Linux系统网络设备启动和禁止“ifconfig eth0 up/down”命令的跟踪( 39,570)
- 嵌入式之行(4):我的emacs(下)( 39,370)
- u-boot移植随笔(7):u-boot启动流程简图( 38,950)
- s3c2410多通道adc驱动及测试程序( 38,701)
- crosstool-ng构建的一个错误的解决( 38,663)
- 填充颜色彩条( 37,198)
热评文章
- 我的2016年个人总结(0)
- 我的内核学习笔记13:x86平台linux系统重启流程跟踪(0)
- Linux内核小笔记:spin_lock锁内不能使用sleep休眠(0)
- 使用python实现GBK转unicode码查询表(0)
- python实现解析oui.txt并抽取MAC前缀及组织名称(0)
- Python实现阳历转农历功能(0)
- 嵌入式Linux入门:概述(0)
- 嵌入式Linux入门2:工具掌握(Windows篇)(0)
- 嵌入式Linux入门3:Linux服务器搭建(0)
- 嵌入式Linux入门4:版本控制git的使用(0)
分类目录
- GNU/Linux程序 (40)
- GNU/Linux系统 (65)
- Linux内核研究 (9)
- python (3)
- U-Boot随笔 (18)
- Windows程序 (19)
- 业余研究 (31)
- 代码生活 (26)
- 小玩意 (2)
- 嵌入式Linux (60)
- 嵌入式底层BIOS (19)
- 开源项目 (6)
- 我的大学生活 (17)
- 我的研究 (9)
- 我的程序代码 (24)
- 无线WIFI (7)
- 流媒体学习 (21)
- 生活掠影 (29)
- 缥缈心路 (4)
- 网络/网站/web (5)
- 网络方面 (17)
- 诗词掠影 (6)
- 读书笔记 (1)
文章归档
- 2017年七月 (3)
- 2017年六月 (1)
- 2017年二月 (1)
- 2017年一月 (5)
- 2016年十二月 (8)
- 2016年十一月 (4)
- 2016年十月 (11)
- 2016年九月 (5)
- 2016年八月 (6)
- 2016年七月 (5)
- 2016年六月 (6)
- 2016年五月 (4)
- 2016年四月 (9)
- 2016年三月 (12)
- 2016年二月 (7)
- 2016年一月 (6)
- 2015年十二月 (11)
- 2015年十一月 (2)
- 2015年十月 (6)
- 2015年九月 (9)
- 2015年八月 (19)
- 2015年七月 (6)
- 2015年六月 (6)
- 2015年五月 (5)
- 2015年四月 (7)
- 2015年三月 (7)
- 2015年二月 (8)
- 2015年一月 (9)
- 2014年十二月 (5)
- 2014年十一月 (8)
- 2014年十月 (5)
- 2014年九月 (46)
- 2014年八月 (120)
最新评论
Paulaidoni:
Пополение балMichaelSpugs:
新手:
大神能把抓包代码发我邮箱研究一下kangear:
对分析H265很有帮助。你们领导JohnnieHiplE:
заказное письмоflybit:
你好,想问下出现新版本出现:wang:
Makefile编译总是错误,M李雷:
小伙子,WiFi挺6666xtzt:
能否交个朋友?xtzt:
十分感谢!!!
标签云集
博客统计
- 日志总数:372 篇
- 评论总数:723 篇
- 标签数量:269 个
- 链接总数:1 个
- 建站日期:2014-8-30
- 运行天数:1145 天
- 最后更新:2017-9-14
Docker制作私有的基础镜像的更多相关文章
- docker镜像制作---jdk7+tomcat7基础镜像
1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm y ...
- docker中如何制作自己的基础镜像
一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...
- docker学习系列-jdk基础镜像制作
准备一台安装有docker服务的机器 1.编辑Dockerfile vim Dockerfile FROM centos:latest ADD ./jdk-8u141-linux-x64.tar. ...
- 使用Dockerfile文件制作centos6.8基础镜像,基于centos基础镜像的ssh远程登录镜像,jdk1.8镜像,tomcat镜像,elasticsearch镜像等等
一.首先制作一个centos6.8的裸机镜像 创建一个干净的目录: [root@docker centos6.]# ls c68-docker.tar.xz Dockerfile Dockerfile ...
- 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...
- docker制作cenos+php56+nginx镜像
首先你环境要安装好docker 1 获取centos镜像. docker search centos 选取第一个官方镜像. docker pull docker.io/centos 新建镜像挂载目录 ...
- [Docker] 制作并运行 Nginx 镜像
环境 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core) Docker:18.09.6 文件 Dockerfile F ...
- Docker制作基础镜像
Docker镜像制作 方式一:手动运行一个容器,做好所有配置,然后把容器提交成一个镜像 方式二:使用DockerFile 示例1:做一个yum安装的nginx镜像 - 运行并进入一个centos容器: ...
- linux 创建docker基础镜像
通过Dockerfile创建镜像时,一般都是基于 Docker Hub 提供的官方镜像.以下分别介绍在ubuntu16和centos7 两个系统上创建个人私有基础镜像的方法. 一.ubuntu16创 ...
随机推荐
- PHP上传原理及操作实现
关于PHP上传文件的函数类库,网上有许多封装很完善,大家直接拿来用就可以. 本文章只是说下关于上传原理和简单的上传操作,老鸟就无视了哈^_^~ 还有一些安全性判断比如:服务端限制能接收图片类型的文件, ...
- make screenshot at Eclipse
In Eclipse, from the Window menu, select Open Perspective > Other... > DDMS. Select the Kindle ...
- ITIL之“变更管理”
首先要说明的是ITIL的变更是指“上线系统的变更”,而不是指系统建设的变更. ITIL的变更的流程如下: 整个变更管理在实际操作中有几个注意点: 1. 现存的企业中,变更咨询委员会(CAB)可能只有信 ...
- zookeeper入门系列讲解
zookeeper可谓是目前使用最广泛的分布式组件了.其功能和职责单一,但却非常重要. 在现今这个年代,介绍zookeeper的书和文章可谓多如牛毛,本人不才,试图通过自己的理解来介绍zooke ...
- yum常用操作
一.yum安装使用: 1.Yum:rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具 2.yum repository:yum repo,存储了众多rpm ...
- python使用tkinter写带界面的工具
python一般用来写纯脚本的居多,但也可以做有视图的产品出来,例如做网页和客户端工具.做成工具的好处是,让不懂代码的人也能使用,不需要去修改代码里面的参数,如果使用次数频繁,甚至比纯脚本跟节约时间: ...
- Android图片处理(Matrix,ColorMatrix) - 转载
Android图片处理(Matrix,ColorMatrix) 转载自:http://www.cnblogs.com/leon19870907/articles/1978065.html 在编程中有时 ...
- Java显示指定类型的文件
文件作为存储数据的单元,会根据数据类型产生很多分类,也就是所谓的文件类型.在对数据文件进行操作时,常常需要根据不同的文件类型来作不同的处理.本实例实现的是读取文件夹指定类型的文件并显示到表格控件中.这 ...
- 双调旅行商问题 (Bitonic TSP)
问题描写叙述: 上述问题能够使用动态规划的方法来解决. 以下是解决思路的详细介绍: 1. 最优子结构: 如果d[i][j]表示从起点1出发到达i及j两个顶点的最短路程之和. 为此能够如果K为此段路程上 ...
- js实现点击评论进行显示回复框
有人在群里问如何在留言评论那里点击回复按钮,下面就自动显示一个回复框,他想要的效果如图: 于是我随意的写了一段HTML,代码如下: <!DOCTYPE HTML> <html lan ...