Docker容器无法作为守护进程运行。

3
我将遵循Docker文档以了解Docker的工作原理。
但我在这个文档中遇到了一个问题。
他们说当运行以下命令时:
$ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

由于-d标志,守护进程被启动。

但是,当使用docker ps命令检查运行的容器时,它是空的,只有标题:

CONTAINER ID  IMAGE         COMMAND               CREATED        STATUS       PORTS NAMES

使用docker ps -a命令查看所有容器,我看到了以下内容:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
e7f1bebd5a49        ubuntu:14.04        "/bin/sh -c while tru"   6 minutes ago       Exited (2) 4 minutes ago                       cranky_mcclintock

出现错误代码2。查看日志:

docker logs e7f1bebd5a49
true;: 1: true;: Syntax error: end of file unexpected

为什么会发生这种情况?我正在Windows 10上运行Docker(使用Docker Quickstart终端)。

以下是我的docker info的一部分:

Containers: 3
Images: 52
Server Version: 1.9.1
Storage Driver: aufs
    Root Dir: /mnt/sda1/var/lib/docker/aufs
    Backing Filesystem: extfs
    Dirs: 58
    Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.1.13-boot2docker
Operating System: Boot2Docker 1.9.1 (TCL 6.4.1);
CPUs: 1
Total Memory: 996.2 MiB
Name: default
Debug mode (server): true
    File Descriptors: 12
    Goroutines: 20
    EventsListeners: 0
    Init SHA1:
    Init Path: /usr/local/bin/docker
    Docker Root Dir: /mnt/sda1/var/lib/docker
Registry: https://index.docker.io/v1/
Labels:
    provider=virtualbox

以下是docker run后的docker events

$ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
e7f1bebd5a490e35ce8451c5f12a4a4f4e089bd70fc6ad1726e927a0610f3e49

2016-01-14T13:20:55.350098419+08:00 e7f1bebd5a490e35ce8451c5f12a4a4f4e089bd70fc6ad1726e927a0610f3e49: (from ubuntu:14.04) create
2016-01-14T13:20:55.363562836+08:00 e7f1bebd5a490e35ce8451c5f12a4a4f4e089bd70fc6ad1726e927a0610f3e49: (from ubuntu:14.04) start
2016-01-14T13:20:55.436727252+08:00 e7f1bebd5a490e35ce8451c5f12a4a4f4e089bd70fc6ad1726e927a0610f3e49: (from ubuntu:14.04) die

docker events 显示了什么? - user2915097
@user2915097,感谢您的评论,我已经在上面添加了更多细节。 - Gary
它与docker v1.8.3和docker-machine 0.4.1兼容良好。 - Opal
1个回答

1
当使用VirtualBox的控制台时,一切正常。只有在Windows的控制台中(使用Docker Quickstart终端)才会失败。
我认为潜在的问题是行尾代码字符(\n\r\r\n)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接