热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在docker镜像中捕获文件?

如何解决《如何在docker镜像中捕获文件?》经验,为你挑选了1个好方法。



1> shizhz..:

当您这样做时docker build,docker将启动一个中间容器并在其中运行您的命令,然后在该过程完成后将该容器删除。因此,如果要在映像仍在构建过程中docker exec -it /bin/bash检查某些文件的内容,只需检查一下即可。

这是一个详细的示例:

具有模拟较长构建过程的Dockerfile

FROM alpine:3.3

RUN echo '["name": "docker"]' > /root/prod.json
RUN echo "prod.json modified, start long build process" && sleep 120 && echo "Long build process finished"

建立形象

? ~/test/long-build-dockerfile/ [test1*] docker build -t long-running-build .
Sending build context to Docker daemon 2.048 kB
Step 1/3 : FROM alpine:3.3
---> 6c2aa2137d97
Step 2/3 : RUN echo '["name": "docker"]' > /root/prod.json
 ---> Running in 4045ab129add
 ---> f5d21892fa51
Removing intermediate container 4045ab129add
Step 3/3 : RUN echo "prod.json modified, start long build process" && sleep 120 && echo "Long build process finished"
 ---> Running in dd45b269efda
prod.json modified, start long build process

现在,构建过程将在此处停留120秒,然后打开另一个终端并找到中间容器:

? ~/ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
dd45b269efda        f5d21892fa51        "/bin/sh -c 'echo ..."   11 hours ago        Up 4 seconds                            serene_gates

进去检查一下内容:

? ~/ docker exec -it serene_gates sh
/ # cd /root/
~ # ls
prod.json
~ # cat prod.json
["name": "docker"]


推荐阅读
author-avatar
风云a899
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有