让我们以whalesay图片为例<代码>docker history显示以下内容:
IMAGE CREATED CREATED BY SIZE COMMENT
6b362a9f73eb 17 months ago /bin/sh -c #(nop) ENV PATH=/usr/local/bin:/us 0 B
<missing> 17 months ago /bin/sh -c sh install.sh 30.37 kB
<missing> 17 months ago /bin/sh -c git reset --hard origin/master 43.27 kB
<missing> 17 months ago /bin/sh -c #(nop) WORKDIR /cowsay 0 B
<missing> 17 months ago /bin/sh -c git clone https://github.com/moxie 89.9 kB
<missing> 17 months ago /bin/sh -c apt-get -y update && apt-get insta 58.58 MB
<missing> 18 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
<missing> 18 months ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.895 kB
<missing> 18 months ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 194.5 kB
<missing> 18 months ago /bin/sh -c #(nop) ADD file:f4d7b4b3402b5c53f2 188.1 MB
我想提取显示为ADD file:bla
的层。有这样做的工具/方法吗?
我真的不明白你所说的“提取”是什么意思,但如果你想获得有关图像的更多信息,请运行
docker inspect <image_name>
如果您想获取文件,请从此映像运行容器。试试
docker export <container_name> > abc.tar
之后,提取abc.tar
并找到您的文件。
看起来其他人也想拥有这个功能,但不幸的是,现在它似乎不存在。
另请参见此问题和此处被拒绝的相关请求。
如果您可以保存完整的docker(docker save
),然后用图层提取一个tarball,那么这是可能的:
docker run -it <your image>
# do fancy stuff in the container
docker commit <your container> foobar # create image from container
docker history foobar # will show you the layers
docker save -o foobar.tar foobar # dumps container contents to foobar.tar
现在foobar。tar将包含不同时间的文件系统状态。在我的例子中,检查这个tarball会显示一个文件
存储库
{"foobar":{"latest":"fdf43d96e691c57e9afb4b85dba2e6745146a7ca9076c7284c6b2e1f93434562"}}
这表明,最新的层是
fdf43
。您可以通过以下方式获得一个包含该层文件系统内容的tarball
tar -x fdf43d96e691c57e9afb4b85dba2e6745146a7ca9076c7284c6b2e1f93434562/layer.tar -f foobar.tar
有一个工具undocker可以自动执行此过程,但我不确定它是否适用于保存的tar文件的当前格式。
在这种特定情况下,看起来ADD
命令将基本映像添加到文件系统中。如果您运行docker历史记录--no-trunc docker/whalesay
,完整的命令是:
/bin/sh -c #(nop) ADD file:f4d7b4b3402b5c53f266bb7fdd7e728493d9a17f9ef20c8cb1b4759b6e66b70f in /
docker history
报告特定层为188MB。让我们更详细地了解这些层:
$ docker save docker/whalesay -o whalesay.tar
$ tar tvf whalesay.tar
...
-rw-r--r-- 0/0 197181952 2015-05-25 22:04 cc88f763e297503d2407d6b462b2b390a6fd006b30f51c8efa03dd88fa801b89/layer.tar
...
看起来是一个很好的候选人!您现在可以提取该层并从中提取文件。
$ tar xf whalesay.tar cc88f763e297503d2407d6b462b2b390a6fd006b30f51c8efa03dd88fa801b89/layer.tar
$ tar xf cc88f763e297503d2407d6b462b2b390a6fd006b30f51c8efa03dd88fa801b89/layer.tar etc/passwd
如果您想从图层中提取特定文件,但不知道是哪一层,您可以这样做。首先,提取所有图层:
$ tar xf whalesay.tar
现在您将所有图层作为单独的. tar文件。让我们找到一个文件:
$ for layer in */layer.tar; do tar -tf $layer | grep docker.cow && echo $layer; done
usr/local/share/cows/docker.cow
0523c5a0c4588dde33d61d171c41c2dc5c829db359f4d56ab896ab1c185ed936/layer.tar
cowsay/cows/docker.cow
40e8ae7bb4e5b9eaac56f5be7aa614ed50f163020c87ba59e905e01ef0af0a4f/layer.tar
cowsay/cows/docker.cow
f9bc8676543761ff3033813257937aeb77e9bc84296eaf025e27fe01643927cf/layer.tar
最后,从所需图层中提取文件:
$ tar xf 0523c5a0c4588dde33d61d171c41c2dc5c829db359f4d56ab896ab1c185ed936/layer.tar \
usr/local/share/cows/docker.cow
这将提取具有相对于当前目录的完整路径的文件。
$ cat usr/local/share/cows/docker.cow
##
## Docker Cow
##
$the_cow = <<EOC;
$thoughts
$thoughts
$thoughts
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\\______ o __/
\\ \\ __/
\\____\\______/
EOC
我在AWS上使用Kubernetes来运行一个Play+Akka流服务器。 执行时 我的吊舱进入“ImagePullBackoff”状态。 以下是事件列表: 但是,映像存在于存储库中--执行: 在我的机器上工作。 现在,这个节点上还有其他的豆荚在运行。
我有车牌图像(图像像这些示例图像一样被裁剪)。我只想从输入图像中提取印版。 我已经应用了OpenCV Canny边缘检测器,但我不能再进一步了。有人能帮我吗? 我的最终目标是用我的公司标志替换这个标牌。 车牌图像示例:
我得到以下错误 服务器:版本:1.12.6 API版本:1.24 Go版本:Go1.6.4 Git提交:78D1802构建:1月10日星期二20:20:01 2017 OS/arch:Linux/AMD64
假设我的用户去了他们办公室的扫描仪。扫描仪能够生成扫描文档的PDF。这基本上就是我拥有的文件类型。 我想做的是从这个PDF中提取文本。这不是“第一代”pdf,因为文本没有嵌入到pdf中。文本嵌入在PDF中的图像中。 PDFBox的iText中是否有允许检索此数据的功能?如果可能的话,我正在尝试避免对图像进行OCR。我希望IText或PDFBox中有一些内置的东西可以做到这一点。 请注意,我不是在谈
我知道以前也有人问过类似的问题,但是这些问题已经过时了(有些问题可以追溯到2006年)。 我有一个. net 3.5应用程序(w/iTextSharp 5),我正在转换为. net核心(iText 7),它从联邦快递跟踪文档中提取签名,通过SOAP服务以字节[]数组发送。这段代码多年来一直运行良好,只是略有更新。从联邦快递返回的PDF文档中有几个图像,但签名块不是110x46图像(这是pdf文件中
我正在reddit API中寻找示例。我想从某个subreddit(http://www.reddit.com/r/VillagePorn)中提取图像并将它们放在网页上。我见过其他网站这样做(主要是),我不知道怎么做。 我试过,但只返回图片的缩略图。甚至链接本身也没有。 我该怎么办?