Docker,从头开始启动图像

Docker,从头开始启动图像

所有入门指南都Docker基于docker其他人的图像。但是,即使base图像也有 180MB 的虚拟存储空间。因此,

我想知道,是否有可能docker在没有任何父映像的情况下从头开始启动我的映像?(如果是这样,我打算通过网络安装创建我自己的基础映像)。

PS 检查点击此处了解更多信息Docker

谢谢

答案1

找到它,

如何为 Docker 构建基础框架

回顾一下我一直在做的步骤,

首先确保已安装 debootstrap:

 sudo apt install debootstrap

然后获取最新的mkimage-debootstrap.sh

sudo sh -xc 'curl https://raw.githubusercontent.com/dotcloud/docker/master/contrib/mkimage-debootstrap.sh > /usr/sbin/mkimage-debootstrap.sh'
 sudo chmod 755 /usr/sbin/mkimage-debootstrap.sh

构建步骤非常简单:

mkimage-debootstrap.sh sfxpt/debian sid

对于 Debian,以及

mkimage-debootstrap.sh sfxpt/ubuntu saucy

用于构建 Ubuntu docker 镜像。

请查看上述 URL,了解所有缺失的详细信息。此外,

如何为 Docker 创建自己的基础映像

答案2

Docker Hub 是一个不错的选择。Gentoo 和 GitHub 都是常见的选择,但是 Docker Hub 上的注册表通常包含用于创建 DOCker 容器的 dockerfile/s 链接。

你也可以将 Docker 容器嵌套在一起。你也可以使用 Docker Compose,将参考镜像推送到 yourname/mycustom-container-squash

Dockerfile 
FROM myname/my-custom-container 
ADD Build-all-my-crap.sh
RUN Build-all-my-crap.sh

与 VirtualBox 一样,您可以使用 BusyBox 解压的二进制文件,例如,将 Debian 文件解压为纯 tar.gz(即 bin >tar.gz )等,并使用 bb-tar.gz 并从头开始解压 tarball 以获得最小基础。

就我而言,我尝试将 Gentoo 升级到 Pentoo,但是 iso >out 无法获取 squashfiles,虽然我可以添加覆盖,但如果花费的时间太长,docker-hub 服务器将终止构建。我想用 Pentoo(定制的 Gentoo)覆盖 Gentoo 安装,或者下次尝试添加覆盖,rsync/crsync binpackage然后只需出现 pkg 列表,清除 bins,但这又可能会超时。

GitHub 上的 Jenkler Docker Base Gentoo 软件包

我使用了 Gentoo 官方 repo,但是它们的 shell 工具在针对 x86 强化的 dockerhub autobuilds 中往往会失败。(真倒霉)

Jenkler 的方法允许使用最小但经过调整的基础映像。我可以暂时将一些 debian>tar 放入其中,或者只是将它们构建进去。GitHub 允许使用一些 LFS,因此我可以像上面的例子一样将我的 dir>tarball 切碎。正如我尝试过切分 iso 和 squashfile 一样,但效果并不如我所愿。

necrose99/my-cx-gentoo 基础,使用一些工具来解压 squashfs。例如,对于一些安全研究,能够将 Docker 集群或在 Docker 中将 Pentoo 设置为 chroot,如...(可以运行 x11 等)用于执行可能对我的实际安装不太健康的构建(ALPHA 包我不是最好的 Ebuild 编写者加上较新的安全工具)。

但是,我的新容器调用 my-base 中的
新内容在 Docker Hub 上的构建选项卡中的 old/old/some else 中的下一个新容器调用中出现

不要喋喋不休,让主持人生气...

无论如何,你可以像蛋糕层一样堆叠 Docker 镜像来制作婚礼蛋糕,这是一个很好的比喻和/或将应用程序放入容器并从基础容器构建它。如果您选择的是 Debian,那么可以使用来自 debian/public 的 my-debian-ngix-www-hugo-docker 等。

相关内容