我成功构建了一个docker容器。我正在尝试运行它,但容器在启动时死亡。如何检查问题出在哪里?在docker events我可以看到以下日志:
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)
Run Code Online (Sandbox Code Playgroud)
我在本地运行 docker 并且启动命令是 docker run -p 49160:8080 -d jacob/api
调试容器的最佳方式总是尝试在附加模式下运行,因为您可以通过两种方式运行容器。
前台:
在前台模式下,docker run with-it可以在容器中启动进程,并将控制台附加到进程的标准输入、输出和标准错误。因此,在前台,您可以看到输出,或者在启动期间是否出现错误。
始终在前台运行容器以进行调试。
docker run -it -p 49160:8080 jacob/api
Run Code Online (Sandbox Code Playgroud)
作为文档解释
-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
Run Code Online (Sandbox Code Playgroud)
分离模式:
由选项 --detach 或 -d 显示,表示 Docker 容器在终端的后台运行。它不接收输入或显示输出。如果你想调试所以你必须找到容器 ID 那么docker logs -f container_id
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |