无法启动 OpenALPR Docker 容器

Cannot Start OpenALPR Docker Container

我见过 post 与我的相似,但我的有点不同。我觉得我可能做错了什么。

我在文件夹中创建了 this Dockerfile。然后在该文件夹中:

docker build -t openalpr https://github.com/openalpr/openalpr.git

一切顺利:docker images.

创建容器:

docker create --name foocontainer <IMAGE>

现在,docker container ls -a 我看到了我的容器。我需要通过 ssh 进入它,所以我需要在附加之前开始? docker start <container id> 在那之后没有消息所以我 docker ps 我什么也没看到。我需要 docker attach <container id> 才能 运行 bash 命令。有什么帮助吗?我在 Mac.

我完成了以下操作,可能会帮助您更好地调试和理解 Docker。

  1. 使用 CMD 而不是 ENTRYPOINT。基本原因是当您 运行 一个新容器时能够覆盖 CMD。在此处阅读有关此做法的更多信息:What is the difference between CMD and ENTRYPOINT in a Dockerfile?。所以,我稍微改变了你的 Dockerfile...

    entrypoint ["/bin/sh","-c"]
    cmd ["alpr"]
    
  2. 再次构建您的图像

    docker build -t openalpr .
    
  3. 运行 像这样的新容器:

    docker container run -itd --rm --name=foocontainer openalpr bash
    

    解释:--rm 容器将在退出后删除,bash 覆盖 Docker 文件中提供的 CMD只要这个 CMD 运行s,一个容器就会启动。在您的情况下,alpr 失败并且容器退出。现在它将保持不变。

  4. 如果容器已启动,您可以"get inside"键入如下命令:

    docker container exec -it foocontainer bash
    

从现在开始,您将能够 运行 alpr 并了解为什么它会在容器未停止的情况下失败。

我希望我已经阐明了一些...:-)