【发布时间】:2020-05-19 08:32:38
【问题描述】:
docker image里面有几个文件在/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
那么文件就存在了。
TL;DR
我想在主机上挂载一个卷(目录),并用 docker 镜像中的文件填充它。
我的环境
- Ubuntu 18.04
- Docker 19.03.6
【问题讨论】:
-
您将一个空文件夹映射到您的图像中,您想知道为什么它在您的容器内是空的?另外,你到底想达到什么目标?
-
@Smutje 在运行时将空文件夹映射到我的图像。是闹事吗?我的实现是将文件从图像中取出到主机 os 目录。
-
您认为覆盖文件夹可以实现这一点吗?不,将其映射到其他文件夹并将容器内容复制到第二个文件夹中。
-
@Smutje Ty 兄弟。天才。你救了我的命。那么,如果宿主操作系统的目录是空的,那么容器的目录会覆盖是吗?
-
我会这么认为
标签: docker mount docker-volume mounted-volumes