Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试docker容器的启动?_Docker - Fatal编程技术网

如何调试docker容器的启动?

如何调试docker容器的启动?,docker,Docker,我成功地构建了一个docker容器。我试图运行它,但容器在启动时死亡。 如何检查问题所在? 在docker事件中,我可以看到以下日志: 2019-07-21T16:34:28.239785600+02:00 container create 32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45 (image=jacob/api, name=quirky_feistel) 2019-07-21T16:34:28.44462

我成功地构建了一个docker容器。我试图运行它,但容器在启动时死亡。 如何检查问题所在? 在docker事件中,我可以看到以下日志:

2019-07-21T16:34:28.239785600+02:00 container create 32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45 (image=jacob/api, name=quirky_feistel)
2019-07-21T16:34:28.444621700+02:00 network connect d6234d64d738131d14f8c951fe8067fad7bd4a0ff8a81f1b452d1a107648f95c (container=32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45, name=bridge, type=bridge)
2019-07-21T16:34:29.070197400+02:00 container start 32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45 (image=jacob/api, name=quirky_feistel)
2019-07-21T16:34:29.389522500+02:00 container die 32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45 (exitCode=1, image=jacob/api, name=quirky_feistel)
2019-07-21T16:34:29.807771700+02:00 network disconnect d6234d64d738131d14f8c951fe8067fad7bd4a0ff8a81f1b452d1a107648f95c (container=32300daaf2e67ed935af47e9c33914ff67c678bf71b36aac1a0dcee93146da45, name=bridge, type=bridge)

我正在本地运行docker,启动命令是docker run-p 49160:8080-d jacob/api

调试容器的最佳方式始终尝试在附加模式下运行,因为您可以通过两种方式运行容器

前景: 在前台模式下,docker运行-它可以在容器中启动进程,并将控制台附加到进程的标准输入、输出和标准错误。因此,在前台,您可以看到输出,或者在引导期间是否有错误

始终在前台运行容器以进行调试

docker run -it  -p 49160:8080  jacob/api
正如文件所解释的那样

-a=[]           : Attach to `STDIN`, `STDOUT` and/or `STDERR`
-t              : Allocate a pseudo-tty
--sig-proxy=true: Proxy all received signals to the process (non-TTY mode only)
-i              : Keep STDIN open even if not attached
分离模式:
由选项-detach或-d显示,表示Docker容器在终端的后台运行。它不接收输入或显示输出。如果您想调试,因此必须找到容器ID,那么docker会记录-f container_ID

调试容器的最佳方式始终尝试在附加模式下运行,因为您可以通过两种方式运行容器

前景: 在前台模式下,docker运行-它可以在容器中启动进程,并将控制台附加到进程的标准输入、输出和标准错误。因此,在前台,您可以看到输出,或者在引导期间是否有错误

始终在前台运行容器以进行调试

docker run -it  -p 49160:8080  jacob/api
正如文件所解释的那样

-a=[]           : Attach to `STDIN`, `STDOUT` and/or `STDERR`
-t              : Allocate a pseudo-tty
--sig-proxy=true: Proxy all received signals to the process (non-TTY mode only)
-i              : Keep STDIN open even if not attached
分离模式:
由选项-detach或-d显示,表示Docker容器在终端的后台运行。它不接收输入或显示输出。如果您要调试,因此必须找到容器ID,那么docker logs-f container_ID

docker ps-a获取容器ID并运行docker logs container ID以查看日志。docker ps-a您是否使用-a选项尝试过此操作。@McHawer您是对的,最后,我发现npm启动脚本有问题。非常感谢。docker ps-a获取容器id并运行docker logs容器id以查看日志。docker ps-a您是否使用-a选项尝试过此操作。@McHawer您是对的,最后,我发现npm启动脚本有问题。非常感谢。