我是Docker的新手。
我有一个要运行的镜像,但是我想让docker查看该镜像是否已经从另一个终端运行了......如果正在运行,我不希望它加载另一个...
这可以用docker完成吗?
如果有帮助,我将以特权模式运行docker。
我试图搜索单例 docker 或类似的东西,但没有运气。
更新-
1.从ubuntu工作。
我的场景-从X终端运行docker run Image_a
从终端Y我运行docker run Image_a
当尝试从终端Y运行时,我希望docker检查是否已经有一个运行Image_a的docker,答案是正确的-我希望docker不要在终端Y中运行
最佳答案
您可以使用以下docker命令获取从特定镜像运行的所有容器:
docker ps --filter ancestor="imagename:tag"
例:
docker ps --filter ancestor="drone/drone:0.5"
示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fb00087d4c1 drone/drone:0.5 "/drone agent" 6 days ago Up 26 minutes 8000/tcp drone_drone-agent_1
此方法使用docker api和docker守护程序,因此run命令在后台或其他终端中执行无关紧要。
另一种方法:
如果您有一个容器,则形成一个图像:
尝试命名您的容器,您不能有2个同名容器:
docker run --name uniquecontainer Image_a
下次您运行上述命令时,将出现错误。顺便说一句,考虑使用
-d
,所以您不必切换终端。docker run -d --name uniquecontainer Image_a
关于docker - 如何将docker image作为单例运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548784/