当前位置: 首页 > 知识库问答 >
问题:

如何制作运行docker自身的主机操作系统的docker映像?

潘佐
2023-03-14

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

问题:

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

共有2个答案

翟淇
2023-03-14

我不确定你为什么要做这样的事情,但这不是你问题的重点,所以下面是如何从无到有创建一个新的Docker映像:

如果您能想出当前操作系统的tar文件,那么您可以使用docker导入命令创建一个新的docker映像。

cat my_host_filesystem.tar | docker import - myhost

其中,myhost是您想要的docker映像名,myu-host\u文件系统。tar操作系统文件系统的存档文件。

还可以看看Docker,从superuser从头开始创建图像,这是stackoverflow的答案。

如果您想了解更多信息,从零开始搜索docker是一个很好的起点。

郭逸清
2023-03-14

我在一台服务器上进行维护,我们祈祷服务器不会崩溃,我遇到了一种情况,我不得不用postfix替换sendmail。

我无法停止服务器,也无法使用docker hub可用映像,因为我需要确保不会出现问题。这就是为什么我想制作服务器的映像。

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

下面是对它的描述。

我们首先为机器的整个文件系统构建一个tar文件(不包括一些不必要的和硬件相关的目录-好吧,它可能没有我想要的那么完美,但对我来说很好。你需要尝试任何适合你的方法)我们想要克隆(正如@thomaslevel在这个线程中指出的)。

$ sudo su -
# cd /
#  tar -cpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /

然后将文件下载到您的计算机中,将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

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

 类似资料:
  • 根据Docker基于LXC这一事实,我的理解是Docker容器共享来自其主机操作系统的各种资源。我关心的是CPU核心。下面是一个场景: 主机linux操作系统有8个内核 我必须在上面的主机操作系统上部署一组docker容器 我需要部署的一些docker容器更适合使用2核 a) 因此,如果我在该主机上运行所有docker容器,它们是否会像在该主机操作系统上作为正常安装的应用程序运行一样,根据需要消耗

  • 问题内容: 我不确定我在问正确的问题…但是当我阅读所有可以接触到的docker时,我发现可以在Ubuntu 12.04上安装Docker(例如),然后安装一个Fedora容器还是其他版本的ubuntu?(有一个示例,其中用户在容器中安装了busybox。) 当然,我可能完全错了。 但是,我希望基本系统与容器之间存在短暂的连接。 重述:主机操作系统和容器基础映像的操作系统之间是什么关系? 问题答案:

  • 我下面有DockerFile“ 得到的Docker映像封装了Java程序。当我将这个Docker映像部署到Windows Server或Linux时,映像是否总是包括运行在主机OS(Windows Server或Linux)之上的操作系统(如Linux)? 我问这个问题的意义是Docker映像是包含其他盒子的物理盒子(其中一个是openjdk),这个盒子是否也包含Linux OS盒子,我可以从中取

  • 我正在构建一个新图像,并将内容从主机操作系统文件夹D:\Programs\scrapy复制到其中,如下所示:

  • 我要将文件夹从主机操作系统(Windows)复制到docker映像。 我的Docker文件是D:\Programs> Docker文件 复制失败:在生成上下文中找不到文件或被.dockerignore:stat test:文件不存在 我尝试了命令和 我知道发生此错误是因为我复制的路径必须相对于构建上下文(.in docker构建)。它不能是生成上下文之外的系统上的任意路径。 null 更新1 我将

  • 问题内容: 一直在尝试学习Docker,让我感到困惑的是,在Docker容器中实际上如何运行与主机操作系统不同的Linux。 如果我们假设我的Docker主机正在运行RedHat并且我从Ubuntu映像启动了一个容器,那么是否满足以下条件?: 从逻辑上讲,如果Ubuntu映像占用空间约为550MB,那么Doc​​ker Daemon是否会从映像注册表中实际下载(价值550MB)Ubuntu映像以创