35

我刚开始使用docker。我使用 docker 文件创建了一个图像。如何从现有图像创建新图像?

4

6 回答 6

19

您可以使用 docker 命令 $ docker build -f docker_filename 创建新映像。,它会先读取写指令的Dockerfile,并自动构建镜像。Dockerfile 中的指令包含组装映像所需的命令。一旦图像被构建,它将被分配一个图像ID。可以将映像推送到 docker 注册表中心。为此,用户必须在 docker 注册表中心创建一个帐户。

Dockerfile 的示例如下所示,

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

在这里,第一条指令告诉新图像将使用 docker/whalesay:latest 图像。第二条指令将运行这两个命令。第三条指令告诉当环境建立时“fortune -a”命令应该运行。

于 2016-12-20T14:37:08.060 回答
16

假设您bd91ca3ca3c8正在运行一个容器,并且您想在对容器进行更改后创建一个新映像。生成另一个图像将允许您保留更改。

在这种情况下,您可以运行:

docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image

-p在 commit 命令构建新映像时暂停容器。

-a允许您提供新图像的作者信息。

-m允许您像在 Git 中一样添加评论。

于 2019-02-21T18:13:20.887 回答
6

为了从现有图像创建新图像,您只需指定“FROM”,例如:

FROM sergiu/ubuntu
MAINTAINER sergiu
于 2016-04-23T10:14:33.283 回答
3

我也是 docker 的新手,但我发现可能会有所帮助。

1) 每当您编写“FROM”并运行 docker 文件时,docker 查看他的 repo 并首先加载该图像。所以如果你有任何你想在“FROM”中使用的本地图像,那么它应该被加载。

2)你在“FROM”中给出的参数很重要,就好像你给repo_name或标签错误一样,它会给出错误消息。因此,为此运行“docker images”命令以查看您的图像正确的 repo_name 和标签。

3)现在您可以像这样启动新的docker文件

FROM REPOSITORY:TAG

它会起作用

于 2019-09-24T11:01:45.557 回答
2

Docker commit:根据容器的更改创建一个新镜像。

将容器的文件更改或设置提交到新映像中会很有用。这允许您通过运行交互式 shell 来调试容器,或将工作数据集导出到另一台服务器。通常,最好使用 Dockerfiles 以文档化和可维护的方式管理您的图像。

于 2018-01-16T03:52:21.187 回答
1

您可以按照以下命令为现有图像创建图像:

docker tag jboss/wildfly myimage:v1

创建一个使用图像myimage标签调用v1的图像jboss/wildfly:latest

于 2020-01-20T07:06:29.157 回答