首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker教程:Docker化容器关闭-语法错误

Docker教程:Docker化容器关闭-语法错误
EN

Stack Overflow用户
提问于 2016-01-27 02:08:57
回答 2查看 548关注 0票数 1

我一直在浏览链接在这里的用户指南:码头用户指南:集装箱。我在码头终端运行了这个命令:

代码语言:javascript
运行
复制
$ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

这应该是创建一个在后台运行的容器。但是,当我查看它是否正在运行时,可以使用:

代码语言:javascript
运行
复制
$ docker ps -a

它显示容器已创建,但已停止运行。容器的日志包含以下内容:

代码语言:javascript
运行
复制
true;: 1: true;: Syntax error: end of file unexpected

在不尝试创建守护进程的情况下运行命令会产生类似的结果:

代码语言:javascript
运行
复制
$  docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
true;: 1: true;: Syntax error: end of file unexpected

我猜我的脚本中有语法错误,但我没有看到。如有任何建议,敬请见谅。

(问题有点类似,可能是相关的)。

编辑其他信息:我正在Windows 7中运行Docker,使用Docker终端

EDIT2下面接受的答案对我是有效的,除了我必须将“默认”附加到许多命令之后,才能指定我是在与默认机器对话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 05:37:13

用单引号代替:

代码语言:javascript
运行
复制
docker run -d ubuntu:14.04 /bin/sh -c 'while true; do echo hello world; sleep 1; done'

注: as 这里提到的

当我尝试使用VirtualBox的控制台时,一切都很好。 但是它总是在windows的控制台中失败(使用终端)。 我认为问题在于行尾代码(\n\r\r\n)。

因此,先尝试ssh到码头机器(docker-machine ssh $(docker-machine ip <machine_name>)),然后再试一次。

对于最近创建机器“default”的对接机器,您甚至不需要键入任何内容(这里我使用dm作为docker-machine的别名):

然后,该命令使用单引号或双引号:

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 05:01:51

您使用的是普通用户的码头建设。

对于shell脚本,您应该使用根帐户。

所以试着:

代码语言:javascript
运行
复制
sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35027608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档