如何根据现有图像创建新的docker镜像?

Aar*_*hen 14 docker docker-image

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

nPc*_*omp 14

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

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

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

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

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

-m 允许您像在 Git 中一样添加注释。


小智 10

您可以使用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
Run Code Online (Sandbox Code Playgroud)

这里,第一条指令告诉新图像将使用docker/whalesay:最新图像.第二条指令将运行这两个命令.并且第三条指令告诉我们在设置环境时应运行"fortune -a"命令.


小智 7

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

docker tag jboss/wildfly myimage:v1
Run Code Online (Sandbox Code Playgroud)

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


Ser*_*giu 5

为了从现有映像创建新映像,您要做的就是为以下内容指定“ FROM”:

FROM sergiu/ubuntu
MAINTAINER sergiu
Run Code Online (Sandbox Code Playgroud)

  • 第一行中的“sergiu”是什么?一个文件夹?从私人注册表中的图像构建怎么样?“MAINTAINER”关键字的用途是什么? (3认同)