其他分享
首页 > 其他分享> > 根据docker日志查错

根据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

这次运行就正常了

标签:run,samdwich1,查错,dockerspace,docker,com,chenshm,日志
来源: https://blog.csdn.net/chenshm/article/details/118691640