目前我正在使用各种应用程序运行超过15个容器的docker。我正好在我每次使用创建容器的命令时都厌倦了查看我的文档。尝试创建脚本和别名命令以简化此过程我遇到了这个问题:
有没有办法从主机的共享文件夹中获取容器的名称?
例如,我有一个目录“MyApp”,在其中我启动了一个共享文件夹“shared”的容器。如果出现以下情况将是完美的:
a。我在某处有一个全局脚本,并且分别设置了别名命令和
b。我可以从任何“OneOfMyApps”目录及其子目录中运行类似“startit”/“stopit”/“rmit”的内容。我想跳过docker ps
- > Cp - >等等每次,只需从脚本中获取容器的名称。有什么想法吗?
答案 0 :(得分:0)
嗯,一种解决方案是使用环境变量将名称传递到容器中,并使用卷中的某些预定文件来存储名称。因此,您将使用-e标志创建容器
docker create --name myapp -e NAME=myapp myappimage
在图像入口点脚本中你会有类似的东西
cd /shared/volume
echo $NAME >> .containers
在你的shell脚本中,你会做类似
的事情function stopit() { for name in `cat .containers`; do docker stop $name; done; }
但这有点脆弱。如果您要编写命令脚本,我建议使用docker ps
获取容器列表,然后使用docker inspect
查找哪些使用此特定共享卷。你可以在脚本中做所有这些,所以问题是什么。