根据Docker文档,要构建自己的映像,必须始终使用FROM
指令指定基本映像。
显然,Docker索引中有很多图像可供选择,但是如果我想构建自己的图像怎么办?那可能吗?
base
如果我理解正确,该映像是从Ubuntu构建的,并且我想尝试使用Debian映像。另外,我想真正了解Docker的工作原理,该base
映像对我来说仍然是一个黑匣子。
编辑: 有关创建基本映像的官方文档
根据Docker文档,要构建自己的映像,必须始终使用FROM
指令指定基本映像。
显然,Docker索引中有很多图像可供选择,但是如果我想构建自己的图像怎么办?那可能吗?
base
如果我理解正确,该映像是从Ubuntu构建的,并且我想尝试使用Debian映像。另外,我想真正了解Docker的工作原理,该base
映像对我来说仍然是一个黑匣子。
编辑: 有关创建基本映像的官方文档
Answers:
报价所罗门海克斯:
您可以使用“ docker import”轻松地从任何压缩包创建新容器。例如:
debootstrap raring ./rootfs tar -C ./rootfs -c . | docker import - flimm/mybase
docker
组即可。
docker import - flimm/mybase
代替docker import flimm/mybase
debootstrap
和tar
至少应该下运行fakeroot
。
(信贷fatherlinux)从获取信息http://developerblog.redhat.com/2014/05/15/practical-introduction-to-docker-containers/,这也解释了更好
为您的文件系统创建tar文件,可能是
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar /
tar文件转移到其他码头工人的系统,如果未在本地安装和import
它
cat centos6-base.tar | docker import - centos6-base
现在,您可以通过运行它进行验证。
docker run -i -t centos6-base cat /etc/redhat-release
dotcloud的脚本 将前两个步骤结合在一起,这让我感到困惑,并且一开始看起来很复杂。
docker 官方指南使用debootstrap
还尝试制作干净的文件系统。
您可以自己判断如何执行步骤1。
要从头开始构建自己的图像,可以使用该scratch
图像。
使用临时的“映像”向构建过程发出信号,表示您希望Dockerfile中的下一个命令成为映像中的第一个文件系统层。
FROM scratch
ADD hello /
CMD ["/hello"]
http://docs.docker.com/engine/articles/baseimages/#creating-a-simple-base-image-using-scratch
import
来自tar文件的这个加号是两个规范的答案,并且该链接是规范的资源。
如果要制作自己的基本映像,我首先要看一下
Official Images,尤其stackbrew
是该回购中的。
否则,在docker repo本身中有一些关于最小化OS映像的重要参考。