在docker映像内部,/tmp
目录中有多个文件。
示例
/tmp # ls -al
total 4684
drwxrwxrwt 1 root root 4096 May 19 07:09 .
drwxr-xr-x 1 root root 4096 May 19 08:13 ..
-rw-r--r-- 1 root root 156396 Apr 24 07:12 6359688847463040695.jpg
-rw-r--r-- 1 root root 150856 Apr 24 06:46 63596888545973599910.jpg
-rw-r--r-- 1 root root 142208 Apr 24 07:07 63596888658550828124.jpg
-rw-r--r-- 1 root root 168716 Apr 24 07:12 63596888674472576435.jpg
-rw-r--r-- 1 root root 182211 Apr 24 06:51 63596888734768961426.jpg
-rw-r--r-- 1 root root 322126 Apr 24 06:47 6359692693565384673.jpg
-rw-r--r-- 1 root root 4819 Apr 24 06:50 635974329998579791105.png
.
.
.
当我键入命令以运行此图像->容器时。
sudo docker run -v /home/media/simple_dir2:/tmp -d simple_backup
Expected behavior
是如果我运行ls -al /home/media/simple_dir2
然后出现文件。
但是actual behavior
中没有/home/media/simple_dir2
。
另一方面,如果我运行相同的图像而没有音量选项,例如
sudo docker run -d simple_backup
然后使用
输入该容器sudo docker exec -it <simple_backup container id> /bin/sh
ls -al /tmp
然后存在文件。
摘要
我希望将卷安装到包含docker映像内的文件的目录。
答案 0 :(得分:0)
来自:How do I get the path of the assembly the code is in?
装入容器上的非空目录 如果您将绑定安装到容器上的非空目录中,则该目录的现有内容会被绑定安装遮盖。这可能是有益的,例如当您要测试应用程序的新版本而不构建新映像时。但是,这也可能令人惊讶,并且此行为不同于docker卷的行为。
“因此,如果主机操作系统的目录为空,那么容器的目录将被覆盖吗?”
不,它不会比较包含文件的文件;不管用什么,它只会覆盖主机上的容器上的文件夹。