如何制作运行docker的主机操作系统的docker镜像?

v1h*_*1h5 28 docker

我开始使用Docker,我可以说,这是一个很棒的概念.到目前为止,一切都很顺利.我在ubuntu(我的主机操作系统)上安装了docker,使用来自存储库的图像并制作新图像.

Question:

我想制作当前(主机)操作系统的映像.如何使用docker本身实现这一目标?我是码头工的新手,所以请忽略我问题中的任何愚蠢的事情,如果有的话.

Ric*_*PHP 14

我在服务器上进行维护,我们祈祷不要崩溃,我遇到了必须用 postfix 替换 sendmail 的情况。

我无法停止服务器或使用 docker hub 可用映像,因为我需要明确我不会遇到问题。这就是我想制作服务器图像的原因。

我找到了这个线程,并从中找到了重现该过程的方法。

下面是它的描述。

我们首先构建机器整个文件系统的 tar 文件(不包括一些非必需的和硬件相关的目录 - 好吧,它可能没有我想要的那么完美,但对我来说似乎没问题。你需要尝试任何对您有用的方法)我们想要克隆(正如本线程中的@Thomasleveil 所指出的那样)。

$ sudo su -
# cd /
#  tar -cpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /
Run Code Online (Sandbox Code Playgroud)

然后只需将文件下载到您的机器中,将 targz 作为图像导入 docker 并初始化容器。请注意,在示例中,我在导入文件时将图像生成的日期-月-日作为图像标记。

$ scp user@server-uri:path_to_file/backup.tar.gz .
$ cat backup.tar.gz | docker import - imageName:20190825
$ docker run -t -i imageName:20190825 /bin/bash
Run Code Online (Sandbox Code Playgroud)

重要提示:此过程会生成一个完全相同的图像,因此如果您将使用生成的图像在开发人员、测试人员和您从中删除的任何内容之间分发或更改任何包含受限密码、密钥或用户的参考以避免安全,这一点非常重要违反。


Tho*_*eil 12

我不确定你为什么要做这样的事情,但这不是你的问题的重点,所以这里是如何从零开始创建一个新的Docker镜像:

如果您可以提供当前操作系统的tar文件,则可以使用docker import命令为其创建新的docker镜像.

cat my_host_filesystem.tar | docker import - myhost
Run Code Online (Sandbox Code Playgroud)

myhost您想要的docker镜像名称和my_host_filesystem.tarOS文件系统的归档文件在哪里.

另外看看Docker,从超级用户开始从头开始图像,以及来自stackoverflow的这个答案.

如果您想了解更多相关信息,那么搜索docker "from scratch"是一个很好的起点.

  • `我不确定你为什么这么说........`实际上我正在运行一个主机系统,这台机器上配置了很多东西.现在,我想练习docker,所以在这台机器上进行设置.当我练习码头时,我想要制作这台机器的图像.出于好奇,这个问题开始了.好吧,我尝试了你的命令但是`import`的语法要求第二个参数是一个URL. (4认同)
  • ...并且我想测试生产机器的配置更改而不会影响生产。 (2认同)

归档时间:

查看次数:

12098 次

最近记录:

6 年,2 月 前