构建一个基础镜像
你真的需要创建一个属于自己的基础镜像吗?太好了!
在这个打包的过程中需要依赖某个发行版本的Linux。下面,我们给出来了一些构建的例子,当然,我们也鼓励你提交你构建的镜像。
使用tar创建一个完整的镜像
一般而言,如果你想将一台正在运行着某个发行版本的Linux系统的机器打包成一个基础镜像,你可能需要一些类似Debian系统的Debootstrap的工具,使用它你也可以构建Ubuntu的镜像。
创建一个Ubuntu的镜像就是这么简单:
$ sudo debootstrap raring raring > /dev/null
$ sudo tar -C raring -c . | docker import - raring
a29c15f1bf7a
$ docker run raring cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.04DISTRIB_CODENAME=raring
DISTRIB_DESCRIPTION="Ubuntu 13.04"
在Docker Github Repo里,拥有更多关于创建基础镜像的实例脚本:
- BusyBox
- CentOS / Scientific Linux CERN (SLC) 基于Debian/Ubuntu 或 基于CentOS/RHEL/SLC/etc.
- Debian / Ubuntu
使用scratch创建一个简单的基础镜像
你可以使用Docker的预留的最小镜像 scratch
作为基础来构建容器。使用 scratch
作为基础镜像,在 Dockerfile
文件里的你需要的下一条命令将成为构建镜像的第一层文件系统。
虽然 scratch
存储在Docker的中央仓库里,你不能拉取运、运行或标记为其他镜像。你可以在你的Dockerfile
文件里引用它。例如,使用 scratch
创建一个最小的容器:
FROM scratch
ADD hello /
CMD ["/hello"]
创建这个hello-world镜像只为达到演示效果,如果你想测试它,你可以去它的镜像中获得它>>。
更多的资源
这里有大量可用的资源帮助你编写你的 Dockerfile
。
-
Dockerfile
指令完整参考指南。 - 参考《Dockerfile的最佳实战》,能帮助你编写一个清晰的、可读的、可维护的
Dockerfile
文件。 - 如果你的目标是创建一个信息的官方仓库,一定要仔细研究一下Dockker的《官方仓库》。