我有一个简单的 Dockerfile
FROM alpine
RUN apk add --no-cache lsyncd
CMD ["ls", "-al", "/etc/lsyncd"]
Run Code Online (Sandbox Code Playgroud)
我构建了图像,它工作正常,如果我像这样运行它,它工作正常:
docker run -i -t -P <NAME_OF_THE_IMAGE>
Run Code Online (Sandbox Code Playgroud)
我得到了包含预期文件的文件夹列表,因为 CMD 就是这样做的。
如果我将其调整为:
docker run -i -t -P -v /docker/dcm/tst:/etc/lsyncd <NAME_OF_THE_IMAGE>
Run Code Online (Sandbox Code Playgroud)
它创建了空的“/docker/dcm/tst”文件夹,并且 ls 命令也返回空。
如果我的理解是正确的,如果本地计算机上的文件夹“/docker/dcm/tst”不存在,则会创建一个新文件夹,并将文件夹“/etc/lsyncd”的内容复制到新文件夹中。
我的理解正确吗?是什么导致了我所看到的问题?
uname -a
Linux docker 4.9.53-5.ph2-esx #1-photon SMP Thu Oct 26 02:44:24 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz GenuineIntel GNU/Linux
Run Code Online (Sandbox Code Playgroud) 我有几个状态集,一个依赖于另一个,在第二个状态集开始缩放之前,我需要第一个状态集中的Pod处于就绪状态。
我想看看是否有一种方法可以自动链接两个有状态集以实现此目的,而不是由我手动完成。我对部署也有同样的担忧。
目前,我不使用Helm或任何其他工具,而只是使用kubectl。