docker工 – 合成比例与分开的卷

我想使用规模,但我需要不同的卷和端口映射的每个节点。

我怎样才能做到这一点? 理想情况下,我需要某种环境variables或运行脚本来为每个新实例分配一个卷和端口。

推荐的方法是什么?

我知道,这可能不是一个完美的解决scheme,但如果你不介意共享节点之间的数据..它确实工作。 我正在使用这个进行本地testing,所以在我的情况下是安全的。

泊坞窗,compose.yml

... volumes: - /var/run/docker.sock:/var/run/docker.sock ... 

Dockerfile

 ... RUN pip3 install docker ... 

在每个节点中,我部署了以下脚本get_name.py

 from docker import Client import os hostname = os.environ['HOSTNAME'] cli = Client(base_url='unix://var/run/docker.sock') data = cli.containers() for d in data: id = d['Id'][:12] names = d['Names'] if id == hostname: print(names[0]) quit() print(hostname) 

当节点启动时( start.sh ),它查询它的名字并创build一个到相应子目录的符号链接:

 ... NODE_NAME=$(python /root/scripts/get_name.py) OWN_VOLUME_NAME="/shared_volumes${NODE_NAME}" ln -s ${OWN_VOLUME_NAME} /data ...