Docker制作私有的基础镜像
2017-10-18 16:36
961 查看
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 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.
即表示成功。如果看到
或卡在
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根文件系统构建的资源:
http://www.virtuatopia.com/index.php/Building_a_Debian_or_Ubuntu_Xen_Guest_Root_Filesystem_using_debootstrap
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/
http://askubuntu.com/questions/442610/debootstrap-warning-during-installation-12-04-lts-server-vmware-virtual-mach
https://help.ubuntu.com/lts/installation-guide/i386/index.html
查看ubuntu各发行版本wiki:
http://en.wikipedia.org/wiki/List_of_Ubuntu_releases
查看ubuntu安装包:
http://packages.ubuntu.com/
后记:本想写稍有点技术含量的文章,把过程所涉及到的知识点都提及,但发现自己文笔不复如前,还是按流水账那样写出来比较畅快些。
李迟,写于2014年10月20日中午休息前
近来经济拮据,如本文对阁下有帮助,可慷慨解囊赞助笔者以输出更多好文章。
支付宝readchy@163 或 微信fly_camel_fly 均可。感谢!
本文固定链接: http://www.latelee.org/using-gnu-linux/ubuntu-debootstrap.html
如无特别说明,迟思堂工作室文章均为原创,转载请注明: ubuntu系统debootstrap的使用 | 迟思堂工作室
【上一篇】Linux网络转发和端口映射的笔记
【下一篇】Linux内存带宽的一些测试笔记
遇到一个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入门3:Linux服务器搭建
嵌入式Linux入门2:工具掌握(Windows篇)
嵌入式Linux入门:概述
Python实现阳历转农历功能
使用python实现GBK转unicode码查询表
python实现解析oui.txt并抽取MAC前缀及组织名称
Linux内核小笔记:spin_lock锁内不能使用sleep休眠
我的内核学习笔记13:x86平台linux系统重启流程跟踪
我的2016年个人总结
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)
我的内核学习笔记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系统 (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年六月 (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挺6666
xtzt:
能否交个朋友?
xtzt:
十分感谢!!!
评论总数:723 篇
标签数量:269 个
链接总数:1 个
建站日期:2014-8-30
运行天数:1145 天
最后更新:2017-9-14
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.
即表示成功。如果看到
或卡在
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根文件系统构建的资源:
http://www.virtuatopia.com/index.php/Building_a_Debian_or_Ubuntu_Xen_Guest_Root_Filesystem_using_debootstrap
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/
http://askubuntu.com/questions/442610/debootstrap-warning-during-installation-12-04-lts-server-vmware-virtual-mach
https://help.ubuntu.com/lts/installation-guide/i386/index.html
查看ubuntu各发行版本wiki:
http://en.wikipedia.org/wiki/List_of_Ubuntu_releases
查看ubuntu安装包:
http://packages.ubuntu.com/
后记:本想写稍有点技术含量的文章,把过程所涉及到的知识点都提及,但发现自己文笔不复如前,还是按流水账那样写出来比较畅快些。
李迟,写于2014年10月20日中午休息前
近来经济拮据,如本文对阁下有帮助,可慷慨解囊赞助笔者以输出更多好文章。
支付宝readchy@163 或 微信fly_camel_fly 均可。感谢!
本文固定链接: http://www.latelee.org/using-gnu-linux/ubuntu-debootstrap.html
如无特别说明,迟思堂工作室文章均为原创,转载请注明: ubuntu系统debootstrap的使用 | 迟思堂工作室
【上一篇】Linux网络转发和端口映射的笔记
【下一篇】Linux内存带宽的一些测试笔记
你可能感兴趣的文章
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入门4:版本控制git的使用嵌入式Linux入门3:Linux服务器搭建
嵌入式Linux入门2:工具掌握(Windows篇)
嵌入式Linux入门:概述
Python实现阳历转农历功能
使用python实现GBK转unicode码查询表
python实现解析oui.txt并抽取MAC前缀及组织名称
Linux内核小笔记:spin_lock锁内不能使用sleep休眠
我的内核学习笔记13:x86平台linux系统重启流程跟踪
我的2016年个人总结
热门文章
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挺6666
xtzt:
能否交个朋友?
xtzt:
十分感谢!!!
标签云集
Linux移植随笔YUVUBoot随笔libjpegLinux之行LinuxgccgitflashYUV播放器ffmpegramstage点阵字符Linux驱动嵌入式之行心路tslibWindowsiptables编程个人总结代码积累大学生活H264码流onvifubuntucorebootGBKMakefile内核学习ARM版本控制博客统计
日志总数:372 篇评论总数:723 篇
标签数量:269 个
链接总数:1 个
建站日期:2014-8-30
运行天数:1145 天
最后更新:2017-9-14
相关文章推荐
- 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作
- Docker 从零开始制作基础镜像[centos]
- alpine(Go环境)Docker基础镜像制作
- 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作
- Docker安装初试&&制作centos6.5基础镜像
- Docker 制作基础镜像----打包操作系统
- 用supermin制作centos 7 docker 基础镜像
- Docker 从零开始制作基础镜像[centos]
- Docker 从零开始制作基础镜像[centos]
- docker中如何制作自己的基础镜像
- docker基础镜像制作
- docker学习系列(四)制作基础的base项目镜像--jdk+tomcat
- 转:如何制作一个定制的 PHP 基础 Docker 镜像(一)
- Docker 从零开始制作基础镜像[centos]
- docker中如何制作自己的基础镜像
- 利用K8S技术栈打造个人私有云(连载之:基础镜像制作与实验)
- docker基础镜像制作
- docker制作自己的基础镜像
- Docker实践(三)应用场景(创建私有库、用dockerfile制作自己应用镜像、利用私有库发布)
- Docker基础镜像的制作