- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想了解更多关于 Docker 的信息。我是初学者,对这个和 Linux 非常陌生。我的英语并不完美,因此我复制了终端输出。我有一个虚拟大小为 516MB 的图像。我在容器中启动了 bash,并使用 wget 将一些 26MB 的数据下载到其中。下载后,我通过提交从容器的更改创建一个图像。之后 VIRTUAL SIZE 为 542.5MB。那是对的。提交后我再次启动 bash,并删除了这个文件。当我提交更改时,图像 VIRTUAL SIZE 为 542.8MB。
这个尺寸没有减少,反而增加了。能告诉我原因吗?
本 map 片:
[fedora_user@fedora-vm ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tester/mytestfedora latest c0ca83567bdd 4 seconds ago 516 MB
fedora latest 834629358fe2 3 months ago 241.3 MB
使用最小的一个并下载一个文件:
[fedora_user@fedora-vm ~]$ docker run -i -t tester/mytestfedora /bin/bash
bash-4.3# su dockeres
[dockeres@05ef6e284e32 /]$ cd /home/dockeres/downloads/
[dockeres@05ef6e284e32 downloads]$ wget https://dl.dropboxusercontent.com/u/827503/0_TEMP/Riverbed.zip
--2015-03-31 19:24:47-- https://dl.dropboxusercontent.com/u/827503/0_TEMP/Riverbed.zip
Resolving dl.dropboxusercontent.com (dl.dropboxusercontent.com)... 54.243.97.104, 54.243.80.193, 50.16.185.28, ...
Connecting to dl.dropboxusercontent.com (dl.dropboxusercontent.com)|54.243.97.104|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26177252 (25M) [application/zip]
Saving to: 'Riverbed.zip'
Riverbed.zip 100%[==============================================================>] 24.96M 3.66MB/s in 14s
2015-03-31 19:25:03 (1.78 MB/s) - 'Riverbed.zip' saved [26177252/26177252]
[dockeres@05ef6e284e32 downloads]$ exit
bash-4.3# exit
列出事件的并根据容器的更改创建新图像:
[fedora_user@fedora-vm ~]$ docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05ef6e284e32 tester/mytestfedora:latest "/bin/bash" 2 minutes ago Exited (0) 6 seconds ago sick_einstein
[fedora_user@fedora-vm ~]$ docker commit 05ef6e284e32 tester/mytestfedora
f122b12e94a32d477f2f2f18c5a5190a9ad5d349109933da65a0cfeff448c822
[fedora_user@fedora-vm ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tester/mytestfedora latest f122b12e94a3 5 seconds ago 542.5 MB
fedora latest 834629358fe2 3 months ago 241.3 MB
再次访问并删除下载的文件:
[fedora_user@fedora-vm ~]$ docker run -i -t tester/mytestfedora /bin/bash
[dockeres@fb5ba36692f0 /]$ cd /home/dockeres/downloads/
[dockeres@fb5ba36692f0 downloads]$ rm -f Riverbed.zip
[dockeres@fb5ba36692f0 downloads]$ ls
[dockeres@fb5ba36692f0 downloads]$ exit
bash-4.3# exit
再次列出事件的并根据容器的更改创建新图像:
[fedora_user@fedora-vm ~]$ docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb5ba36692f0 tester/mytestfedora:latest "/bin/bash" 51 seconds ago Exited (0) 5 seconds ago goofy_yalow
[fedora_user@fedora-vm ~]$ docker commit fb5ba36692f0 tester/mytestfedora
f744e248576d7fa434768a1e1d25625a9654020fe77e12306f304ff5d5ad3e3b
[fedora_user@fedora-vm ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tester/mytestfedora latest f744e248576d 3 seconds ago 542.8 MB
fedora latest 834629358fe2 3 months ago 241.3 MB
提前感谢您提供的任何帮助。
埃德
最佳答案
Docker 使用 union file system为其层。每个 RUN 命令都会创建一个新层,就像从正在运行的容器中提交一样。图像由特定层及其所有祖先层组成。这是虚拟尺寸。因此,虚拟大小在层中单调增加。您的 wget 创建了一个新层。您的 rm 创建了一个新层,即使文件的联合(例如,du -hs/)的大小更小。
关于linux - 为什么使用 rm 从容器中删除文件后虚拟大小仍然相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380738/
我正在学习 git,但我对暂存和提交文件的不同方式感到困惑。为了解决这个问题,我使用了目录的比喻:工作目录、暂存目录、提交目录。 如果我rm 我的工作目录中的一个文件,它只会仅 从我的工作目录中删除它
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
在 Makefile 中,我读到: -rm -rf(而不是 rm -rf)。 Makefile 中行开头的第一个“-”是什么意思? 最佳答案 这意味着make本身将忽略来自rm的任何错误代码。 在 m
我正在使用此命令尝试删除一个非常大的文件夹中的所有 Thumbs.db 文件。我认为 -f 应该在不要求确认的情况下强制删除,但我仍然被提示在每个文件上输入“y”或“n”。 find "megapac
我想用 GIT 删除整个目录...每次我不断收到相同的错误并且不明白为什么会这样。 我想删除“blue_white”文件夹... ├── css │ ├── design.css │ └──
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
使用 /bin/rm abc.txt 有什么区别以及有时您必须这样做的时候 alias rm然后用 rm abc.txt 执行 最佳答案 /bin/rm将始终引用二进制 rm命令在您的系统上。如果你只
大多数文章,我都读过。他们建议使用 rm(list=ls())但我不知道如果我喜欢使用 rm() 有什么区别 我可以用rm()而不是 rm(list=ls())如果我想清除所有变量? 请给我一些建议。
问题 Bash 中的 rm -d 和 rm -R 命令有什么区别? 我应该使用哪一个? 详情 根据 rm 命令的手册页: rm -d 尝试删除目录以及其他类型的 文件。 rm -R 尝试删除以每个文件
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
标题是描述。 我只是想知道 rm -r 和 rm -R 之间有什么区别。 Linux man 描述似乎完全相同(还有一个,--recursive),但很多人使用 -r 和 -R 好像它们不一样。 所以
我使用 rm、Finder 等从 Git 存储库中删除了一堆文件和目录。 我正在寻找一个 Git 命令,它将这些记录到标记为删除的索引中,就好像我对它们调用了 git rm 一样。 我知道 git a
在 SVN 上,直接从文件系统中删除某些内容(而不是使用 svn)会带来很多麻烦。 我在使用 git 时没有发现这是一个问题,但我注意到 git 有它自己的 rm 实现(git rm). rm 和 g
我想备份我的 gitlab 容器。有两种选择: docker exec -ti my.gitlab.container sh -c "/opt/gitlab/bin/gitlab-rake gitla
我正在关注 this Wikipedia example查找和删除文件。 [jalal@galapagos-04] (5)$ touch 'not important_file' [jalal@gal
我有一个 shell 脚本在 cygwin 环境中的 windows 环境中运行。该脚本有一个清除功能,可以根据特定条件删除系统中的特定文件夹。 我准备好要删除的所有文件夹的列表,然后使用以下命令:
当我们使用 docker build 命令构建 docker 镜像时,我们有两个选项 --force-rm=true 和 --rm=true移除中间容器。这两个选项有什么区别,分别在什么场景下使用。
我在删除Docker容器时遇到问题-当我使用前一个命令时,它不起作用(Docker报告了容器ID,但没有删除它)。后者起作用了。据我所知,Docker语法是相同的: C:\Users\user>doc
我尝试计算数据 x 的每列的总和。但我总是遇到这个错误 "Error in colSums(x, na.rm = T) : invalid 'na.rm' argument" 为什么 na.rm 参数
有人知道如何删除 R 中除一个对象之外的所有内容吗?通常,要删除我编码的所有内容: rm(list=ls()) 所以我试过: rm(c(list=ls()-my_object)) 但它没有用。 最佳答
我是一名优秀的程序员,十分优秀!