2017-10-19 71 views
1

我有三个.sh文件,我为了构建和运行docker镜像而运行。截至昨天,我似乎无法创造任何新的工作。这很奇怪,因为即使我完全复制了工作内容,它仍然不起作用。Shell文件无法使用docker correclty

我可以在终端中运行shell脚本内的行,它们将工作。我不知道如何或为什么这不起作用。

编辑:可以运行这些文件,但它们吐出像

Error response from daemon: No such container: foo-container 

这是不正确的,因为我可以看到码头工人PS容器

例子:

这是一个可以运行的旧脚本

#! /bin/bash 
docker stop cb-server 
docker rm cb-server 
docker rmi couchbase.server.container 
docker build -t couchbase.server.container . 

但是,如果我做一个新的使用完全相同的代码,并运行它,我得到这个:

Error response from daemon: No such container: cb-server 
Error response from daemon: No such container: cb-server 
Error response from daemon: invalid reference format 
+0

你能分享任何脚本吗? –

+0

你走了,我现在有点疯了 – Cilvet

+0

当容器已经停止并被移除时,你将得到没有这样的容器错误。运行'docker ps -a | grep cb-server'和'docker images | grep couchbase'并查看是否返回响应 –

回答

0

两个“没有这样的容器”的反应很可能因此而造成的容器和图像上不存在你的机器(例如您已经停止并删除它们)

您可能可以在尝试运行它们之前用条件包装这些命令。

https://stackoverflow.com/a/38576401/2892779

无效引用格式可能是这样的:

https://github.com/moby/moby/issues/25599

只有小写字符允许图像的名字(我做你的贴脚本本身没有什么这一问题,但你说你有3个,所以假设可能是其中一个)

+1

感谢您的回答。我的机器上不存在的容器和图像是我想到的第一件事,但它们确实存在,码头工用docker ps显示它们,并且可以通过其他(较旧的)脚本找到它们。我担心这可能与权限有关 – Cilvet

+0

您是否正在运行sudo以执行任何命令?什么操作系统和版本的主机上的码头?你有没有尝试重新启动docker守护进程?脚本在同一台机器上吗?相同文件夹?如果您重命名旧脚本,该怎么办?你可以在两个脚本都存在的文件夹中运行'last -al',以便检查权限吗?你在脚本上运行'chmod + x'吗?我也注意到了这一点,但你的bash脚本应该删除#和!之间的空格。 –

+0

划伤关于shebang线的评论。今天早上我正在浏览我的电话,并且必须错误地阅读它。 –