Docker 教程:守护容器关闭 - 语法错误
Docker Tutorial: Daemonized Container Closes - Syntax Error
我一直在阅读此处链接的用户指南:
Docker User Guide: Containers。
我在 docker 终端中 运行 这个命令:
$ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
这应该创建一个在后台运行的容器。但是,当我查看它是否为 运行 时,使用:
$ docker ps -a
显示容器已创建但已停止运行。
容器的日志包含以下内容:
true;: 1: true;: Syntax error: end of file unexpected
运行 不尝试创建守护进程的命令会产生类似的结果:
$ 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 下面接受的答案对我有用,除了我必须将 "default" 附加到一些命令,以指定我正在与默认机器交谈。
您正在使用普通用户进行 docker 构建。
对于 shell 脚本,您应该使用 root 帐户。
所以尝试:
sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
尝试使用单引号代替:
docker run -d ubuntu:14.04 /bin/sh -c 'while true; do echo hello world; sleep 1; done'
注:如:
When I try to use VirtualBox's console there is all fine.
But it always fail in windows's console (using Docker Quickstart Terminal).
I think the problem is about the end-of-line code (\n
,\r
or \r\n
).
所以先尝试通过 ssh 连接到 docker 机器 (docker-machine ssh $(docker-machine ip <machine_name>)
),然后再试一次。
对于最近的 docker-machine,它创建了机器“default
”,您甚至不必输入任何内容(这里我使用 dm
作为 docker-machine
):
然后该命令适用于单引号或双引号:
我一直在阅读此处链接的用户指南: Docker User Guide: Containers。 我在 docker 终端中 运行 这个命令:
$ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
这应该创建一个在后台运行的容器。但是,当我查看它是否为 运行 时,使用:
$ docker ps -a
显示容器已创建但已停止运行。 容器的日志包含以下内容:
true;: 1: true;: Syntax error: end of file unexpected
运行 不尝试创建守护进程的命令会产生类似的结果:
$ 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 下面接受的答案对我有用,除了我必须将 "default" 附加到一些命令,以指定我正在与默认机器交谈。
您正在使用普通用户进行 docker 构建。
对于 shell 脚本,您应该使用 root 帐户。
所以尝试:
sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
尝试使用单引号代替:
docker run -d ubuntu:14.04 /bin/sh -c 'while true; do echo hello world; sleep 1; done'
注:如
When I try to use VirtualBox's console there is all fine.
But it always fail in windows's console (using Docker Quickstart Terminal).
I think the problem is about the end-of-line code (
\n
,\r
or\r\n
).
所以先尝试通过 ssh 连接到 docker 机器 (docker-machine ssh $(docker-machine ip <machine_name>)
),然后再试一次。
对于最近的 docker-machine,它创建了机器“default
”,您甚至不必输入任何内容(这里我使用 dm
作为 docker-machine
):
然后该命令适用于单引号或双引号: