sto*_*es2 3 mount docker mounted-volumes docker-volume
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
Run Code Online (Sandbox Code Playgroud)
当我输入命令来运行此图像 - >容器时。
sudo docker run -v /home/media/simple_dir2:/tmp -d simple_backup
Run Code Online (Sandbox Code Playgroud)
Expected behavior是如果我运行ls -al /home/media/simple_dir2
然后文件就会显示出来。
但actual behavior什么都不存在/home/media/simple_dir2。
另一方面,如果我在没有卷选项的情况下运行相同的图像,例如:
sudo docker run -d simple_backup
Run Code Online (Sandbox Code Playgroud)
并使用以下命令进入该容器:
sudo docker exec -it <simple_backup container id> /bin/sh
ls -al /tmp
Run Code Online (Sandbox Code Playgroud)
那么文件就存在了。
长话短说
我想在主机上安装一个卷(目录),并用 docker 映像内部的文件填充它。
来自: https: //docs.docker.com/storage/bind-mounts/
\n\n\n装载到容器上的非空目录\n如果绑定装载到容器上的非空目录,则目录\xe2\x80\x99 的现有内容将被绑定装载遮盖。这可能是有益的,例如当您想要测试应用程序的新版本而不构建新映像时。然而,这也可能令人惊讶,这种行为与 docker 卷的行为不同。
\n
\n\n那么,如果主机操作系统的目录为空,那么容器的目录将覆盖,对吗?
\n
不,它不会比较它们中谁拥有文件;而是比较它们。无论如何,它只是用主机上的目录覆盖容器内的目录。
\n| 归档时间: |
|
| 查看次数: |
1686 次 |
| 最近记录: |