例如:挂个空目录进去,容器里对应目录里的文件就没了
除了不指定目录,除了单独弄个数据卷
只能用 Shell 弄个判断流程么,目录为空则自动写入文件;还是 Docker 有啥设置可以
1
whileFalse 2017-08-18 16:19:17 +08:00
不能,会覆盖容器镜像里面的目录。
你的需求和场景是什么。 |
2
strahe 2017-08-18 16:40:49 +08:00
Linux 基本功复习一下,能把一个盘挂载到非空目录么
|
3
blanu 2017-08-18 16:42:55 +08:00 via iPhone
我一开始也很疑惑,不过后来看到很多 shell 脚本处理这个,就感觉这个应该是从技术层面没办法实现
|
4
weishimi OP @whileFalse 需求是本地指定目录要直接有些初始文件,看来要不先在本地拷贝文件,然后再挂载,或者容器启动弄个脚本远程添加。
|
6
maninwa 2017-08-18 16:49:10 +08:00 via Android
@strahe 记得可以挂载到非空目录的呀,有次迁移存储还专门把备份放到挂载目录下(卸载后),迁移完成后又直接挂载回来
|
7
zuolan 2017-08-18 16:49:16 +08:00
docker cp 复制出来再执行咯,不过既然你都打算挂载了,那就是数据卷了,既然是数据卷,那镜像里面这个目录干嘛还要放东西。。。。把你的场景说出来看看?
|
10
gam2046 2017-08-18 17:37:11 +08:00 2
同意#7 的说法,建议描述一下具体的需求场景,而不是提一个 XY 问题。
http://coolshell.cn/articles/10804.html 对于 X-Y Problem 的意思如下: 1 )有人想解决问题 X 2 )他觉得 Y 可能是解决 X 问题的方法 3 )但是他不知道 Y 应该怎么做 4 )于是他去问别人 Y 应该怎么做? 简而言之,没有去问怎么解决问题 X,而是去问解决方案 Y 应该怎么去实现和操作。于是乎: 1 )热心的人们帮助并告诉这个人 Y 应该怎么搞,但是大家都觉得 Y 这个方案有点怪异。 2 )在经过大量地讨论和浪费了大量的时间后,热心的人终于明白了原始的问题 X 是怎么一回事。 3 )于是大家都发现,Y 根本就不是用来解决 X 的合适的方案。 X-Y Problem 最大的严重的问题就是:在一个根本错误的方向上浪费他人大量的时间和精力! |
11
ryd994 2017-08-18 18:29:10 +08:00 via Android
一般是通过启动脚本来做这个
|
12
kaneg 2017-08-18 20:07:28 +08:00 via iPhone
说了半天不知道楼主的原始需求是啥
|
13
zoues 2017-08-18 20:48:47 +08:00 via iPhone
可以啊
|
14
leopku 2017-08-19 08:51:31 +08:00 via iPhone
1. 挂载文件
2. 挂载到另外一个目录,拷贝或 sync 过去 |
15
weishimi OP 我也是服了,很多说原始需求、使用场景的,还拷贝个 X-Y Problem,有这个时间请看一下我发的 3 行。
标题:Docker 中指定位置挂载数据,不能从容器中复制文件吗? 说明:-v $PWD/data:/docker,有没有什么设置能够容器内 /docker 拷贝到$PWD/data,而不是以下第一行实际碰到的覆盖。我显然要是的是容器内 /docker 拷贝到宿主机$PWD/data 目录 第一行:例如:挂个空目录进去,容器里对应目录里的文件就没了 说明:-v $PWD/data:/docker,$PWD/data 文件覆盖了容器内 /docker 文件 第二行:除了不指定目录,除了单独弄个数据卷 -v /data,容器内 /data 文件拷贝到宿主机(随机目录);-v volume-name:/data,容器内 /data 文件拷贝到数据卷 volume-name 第三行:只能用 Shell 弄个判断流程么,目录为空则自动写入文件;还是 Docker 有啥设置可以 说明 1:我知道有个解决方法,先-v $PWD/data:/docker,再判断 /docker 是否为空目录,目录为空则放入文件。这么做容器启动的时候,文件从远程添加,文件过大的话脚本执行需要花费不少时间,这显然不好。 说明 2:数据同步有多种规则,目录$PWD/data,容器内 /docker 是否也有这多种规则? 能有多详细我就说的多详细了。 > 没有筷子我能用筷子吃饭吗? 1. 不用筷子怎么吃饭 2. 除了用手抓吃饭,除了用勺子吃饭 3. 我另外找个筷子可以的,还有其他方法吗? 为啥有人要问我,你吃的什么饭,你喜欢什么样的吃饭方式,你为什么要吃饭 |
16
ypcs03 2017-09-17 04:43:11 +08:00 via Android
如果挂载路径存在 docker 会先把里面的内容 copy 到这个目录下面再挂载,但是在 host 上不可见,可以在容器内加个 command copy 出来
|
17
clearT 2019-02-26 19:17:13 +08:00
|
18
liu826250634 2020-03-18 10:21:32 +08:00
@weishimi 你这个问题解决了么,我刚学了两天 docker, 也遇到这种问题了,感觉 docker 的作者不会没想到这点。。。
|
19
weishimi OP @liu826250634 好久没这样折腾了,你参考下 17 楼回复的:
https://stackoverflow.com/questions/49633701/docker-volume-empty-after-its-created/49635340#49635340 很多天前就已经看到了,但那时候回复,提示要验证手机号码,就没回复了。现在到这里有别的疑惑,于是,回复… |