我刚开始使用docker。我使用 docker 文件创建了一个图像。如何从现有图像创建新图像?
6 回答
您可以使用 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”命令应该运行。
假设您bd91ca3ca3c8
正在运行一个容器,并且您想在对容器进行更改后创建一个新映像。生成另一个图像将允许您保留更改。
在这种情况下,您可以运行:
docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image
-p
在 commit 命令构建新映像时暂停容器。
-a
允许您提供新图像的作者信息。
-m
允许您像在 Git 中一样添加评论。
为了从现有图像创建新图像,您只需指定“FROM”,例如:
FROM sergiu/ubuntu
MAINTAINER sergiu
我也是 docker 的新手,但我发现可能会有所帮助。
1) 每当您编写“FROM”并运行 docker 文件时,docker 查看他的 repo 并首先加载该图像。所以如果你有任何你想在“FROM”中使用的本地图像,那么它应该被加载。
2)你在“FROM”中给出的参数很重要,就好像你给repo_name或标签错误一样,它会给出错误消息。因此,为此运行“docker images”命令以查看您的图像正确的 repo_name 和标签。
3)现在您可以像这样启动新的docker文件
FROM REPOSITORY:TAG
它会起作用
Docker commit:根据容器的更改创建一个新镜像。
将容器的文件更改或设置提交到新映像中会很有用。这允许您通过运行交互式 shell 来调试容器,或将工作数据集导出到另一台服务器。通常,最好使用 Dockerfiles 以文档化和可维护的方式管理您的图像。
您可以按照以下命令为现有图像创建图像:
docker tag jboss/wildfly myimage:v1
创建一个使用图像myimage
标签调用v1
的图像jboss/wildfly:latest