我刚开始使用docker。我使用docker文件创建一个图像。如何从现有图像创建新图像?
答案 0 :(得分:9)
您可以使用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:最新图像。 第二条指令将运行这两个命令。 并且第三条指令告诉我们在设置环境时应该运行“fortune -a”命令。
答案 1 :(得分:4)
要从现有图像创建新图像,您只需指定' FROM'例如:
FROM sergiu/ubuntu
MAINTAINER sergiu
答案 2 :(得分:3)
假设您正在运行一个容器bd91ca3ca3c8
,并且您想在对该容器进行更改后创建一个映像。您可能想要生成另一张图像以保留更改等。
在这种情况下,您可以运行:
docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image
-p
在提交命令生成新映像时暂停容器。
-a
允许您提供新图像的作者信息。
-m
允许您像在Git中一样添加评论。
答案 3 :(得分:2)
Docker commit:根据容器的更改创建新图像。
将容器的文件更改或设置提交到新图像中会很有用。这允许您通过运行交互式shell来调试容器,或将工作数据集导出到另一个服务器。通常,最好使用Dockerfiles以文档化和可维护的方式管理图像。
答案 4 :(得分:0)
我也是docker的新手,但我发现可能会有所帮助。
1)每当您编写“ FROM”并运行docker文件时,docker都会查看其存储库并首先加载该映像。因此,如果您要在“ FROM”中使用任何本地映像,则应将其加载。
2)在“ FROM”中输入什么参数很重要,就像您输入repo_name或标记错误一样,它给出错误消息msg。因此对于此运行“ docker images”命令,以查看正确的映像repo_name和标记。
3)现在,您可以像这样启动新的docker文件
FROM REPOSITORY:TAG
它将起作用