我正在使用Neo4j泊坞窗图像并创建了容器。然后将一些数据添加到容器中。
现在我想将容器导出为图像以供将来使用并且数据包含在docker image中。
How can I do it?
答案 0 :(得分:1)
可以使用命令docker commit <container-name> <target-image-name>
将docker容器提交到图像中。
HOWEVER ,如docker commit command docs中所述:
提交操作不包括容器内安装的卷中包含的任何数据。
neo4j image将/data
声明为卷,因此commit命令不会包含您创建的数据,该数据存储在容器内的/data
下。
您需要手动复制此文件夹并将其复制回新容器。
docker cp <old-container-name>:/data container-data
docker run -v container-data:/data <commited-image>
<强>更新强>:
如果要将数据放入提交的图像中,请创建自定义图像:
FROM <commited-image>
COPY container-data /data
使用docker build
构建此图像后,您应该获得与正在运行的容器相同的图像。然后,您可以将此图像推送到
docker注册表并在其他主机上运行。
答案 1 :(得分:0)
1)您需要使用docker build命令才能首先构建图像 即docker build [OPTIONS] PATH |网址| - 2)使用Docker push命令将该映像推送到存储库中心 docker push [OPTIONS] NAME [:TAG]
之后您可以通过docker pull下载使用该图像
答案 2 :(得分:0)
命令docker commit
就是为此设计的。
参见文档
https://docs.docker.com/engine/reference/commandline/commit/
例如,如果
docker ps
显示我的容器ID为
123abc456def
和名称
Neo4j的
我可以做任何一件事
docker commit 123abc456def myuser/myimage:myversion
或
docker commit neo4j myuser/myimage:myversion
等等
docker images
现在将显示我的提交图像