根据docker日志查错

我创建完容器并执行docker run并没有发现当前容器在运行

chenshm@com-samdwich1:~/dockerspace$ docker run -d -p 5000:80 hellodocker
44004708c4352e6ca63576d704fce5250729ae1054161e7427ab77a6279c0b27
chenshm@com-samdwich1:~/dockerspace$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
chenshm@com-samdwich1:~/dockerspace$ 

从执行docker run后能正常返回64位容器id可以看出,这个容器其实有被执行了,为什么没有查看到容器正在运行呢?这个时候可以执行docker ps -a 来查看所有运行过的容器

chenshm@com-samdwich1:~/dockerspace$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
44004708c435        hellodocker         "python app.py"     7 minutes ago       Exited (1) 7 minutes ago                           distracted_ganguly

由上图可以看出这个容器不是没有运行,而是运行过然后自动退出了。
为什么会自动退出呢?我明明在docker run的时候加了-d让它在后台运行的。
这个时候就要看看日志,看是不是容器运行的时候出现错误退出了, 用 docker logs ${container_id}

chenshm@com-samdwich1:~/dockerspace$ docker logs 44004708c435
  File "app.py", line 9
    def hello();
               ^
SyntaxError: invalid syntax

由此可以看到python的这个hello函数后面跟分号是错误的(这里应该是冒号)
把错误修改好之后重build,然后再run看看

chenshm@com-samdwich1:~/dockerspace$ docker run -d -p 5000:80 hellodocker
7df9bae970b1ca659ae237c0a6373d4f597023822482a5179a0cd407da310876
chenshm@com-samdwich1:~/dockerspace$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
7df9bae970b1        hellodocker         "python app.py"     7 seconds ago       Up 7 seconds        0.0.0.0:5000->80/tcp   frosty_murdock

这次运行就正常了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容