为什么在使用无花果时,我的卷有时候没有安装在我的Docker容器中?

前端之家收集整理的这篇文章主要介绍了为什么在使用无花果时,我的卷有时候没有安装在我的Docker容器中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在Docker / Fig环境中看到一个奇怪的问题.我的假设是,这是因为容器的装载量有所延迟,但我不确定如何确认.

我有一个包含以下内容的容器:

Dockerfile

FROM busyBox
MAINTAINER Dan Rumney 

loadsnapshot.sh

#!/bin/sh

if [ "$( ls -A /snapshot)" ]; then
  echo "Loading snapshot..."
  # Do stuff
else
  echo "No snapshot to load"
fi

在我的fig.yml文件中,我有:

pdsvol:
 image: busyBox
 volumes:
 - "/opt/alfresco/alf_data"
 - "/data"
 - "/MysqLbackup"
 - "/ldapbackup"
loader:
 image: "docker.myregistry.com/snapshot.loader:3.5.0"
 volumes_from: 
 - pdsvol
 volumes:
 - "/opt/snapshots/my-data/:/snapshot/"

这里的目标(可能很明显)是启动数据容器(pdsvol),然后使用我的机器上运行的一些数据填充它.然后pdsvol被一堆其他容器共享.

我这样做就是打电话

fig up pdsvol

然后

fig run --rm loader

我期待看到的是

builder@beast:/opt/docker-vm$fig run --rm loader
Loading snapshot...
... stuff ...
Removing dockervm_loader_run_1...

而且,有时候我会这样做.但是,有时我看到:

builder@beast:/opt/docker-vm$fig run --rm loader
No snapshot to load
Removing dockervm_loader_run_1...

我可以一遍又一遍地运行fig run –rm loader,我将得到两个结果中的一个.

我的工作理论是,安装卷有一些延迟,有时它会在ENTRYPOINT脚本运行之前发生,有时也会发生.但是,如果我跑:

 docker run --rm -v /opt/snapshots/my-data/:/snapshot/ busyBox ls -A /snapshot

我一直看到我期待的文件……所以这违背了这个理论.

我知道我可以破解loadnapshot.sh并延迟一段时间,看看是否有帮助,但我更愿意了解正在发生的事情,而不是克服修复.

有没有人有任何想法在这里发生了什么?

BTW:主机系统是Linux,所以我们在这里使用本机容器.

更新

我尝试在loadnapshot.sh的顶部放置2s延迟,但它没有帮助.

更新2

添加了一些日志记录到fig转储用于创建容器的配置,并在每个实例中(失败或否),它是相同的:

{
 'Env': None,'Hostname': None,'Entrypoint': None,'Dns': None,'Memory': 0,'OpenStdin': True,'User': None,'cpuShares': None,'AttachStdout': True,'NetworkDisabled': False,'WorkingDir': None,'Cmd': None,'StdinOnce': True,'AttachStdin': True,'Volumes': {u'/snapshot/': {}},'MemorySwap': 0,'VolumesFrom': None,'Tty': True,'AttachStderr': True,'Domainname': None,'Image': 'docker.myregistry.com/snapshot.loader:3.5.0','ExposedPorts': None
}
最佳答案
我可以用Docker 1.4.0 / Fig 1.0.1重现这个问题.

回滚到Docker 1.3.1为我解决了这个问题.

它似乎仍然是一个影响许多人的开放性问题.

虽然#443关闭,但仍存在相关的未解决问题:

> Issue #622: Since docker 1.3.0 / fig 1.0.0 volumes are not mounted when fig up’ing existing containers
> Issue #723: File volumes are broken for docker 1.4.0
> Issue #443: Local directories periodically fail to be mounted.
> Pull Request #711: Fix volumes on recreate #711

猜你在找的Docker相关文章