Docker:错误 500 - 无法启动容器
Posted
技术标签:
【中文标题】Docker:错误 500 - 无法启动容器【英文标题】:Docker: error 500 - failed to start container 【发布时间】:2018-08-08 03:24:00 【问题描述】:我在运行java -jar shinyproxy-1.0.2.jar
并访问我的应用程序后遇到了这个问题:
Error
Status code: 500
Message: Failed to start container: Request error: POST http://localhost:2375/containers/create: 400, body: “message”:“invalid reference format”
Stack Trace:
eu.openanalytics.ShinyProxyException: Failed to start container: Request error: POST
来自shinyproxy.io 的帮助:https://www.shinyproxy.io/troubleshooting/#failed-to-start-container
我检查了防火墙,它被禁用了。
我还检查了我的 docker.service 文件,一切似乎都井然有序:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// -D -H tcp://127.0.0.1:2375
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
我使用的是 Ubuntu 16.04。这里有什么帮助吗?
【问题讨论】:
查看失败的容器日志和 Docker 守护进程的日志文件以获取线索。 是的...... Spring boot 日志在这方面并没有真正的帮助 【参考方案1】:OP 在这里回答。
我设法通过卸载所有以前的 docker 安装解决了这个问题,并按照Digital Ocean's guide 为 Ubuntu 16.04 安装 Docker。
完成此操作后,我重新配置了我的Dockerfile
以包含来自this post 的代码,以及我的application.yml
将docker-cmd
行更改为docker-cmd: ["/usr/bin/shiny-server.sh"]
当然,我重新调整了我的图像,因为我还需要一些其他库和外部依赖项才能使其工作,但本质上,下载闪亮服务器文件的行是让我继续前进的那些行,让我使用java -jar shinyproxy-1.0.2.jar
启动应用程序以正确启动 Spring Boot 应用程序。
另外,为了调试在容器内运行的闪亮应用程序(当然,并非一切正常),我将Dockerfile
中的CMD
行更改为CMD ["R", "-e", "shiny::runApp('/srv/shiny-server')"]
,以及之前的docker-cmd
行给docker-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server/')"]
【讨论】:
以上是关于Docker:错误 500 - 无法启动容器的主要内容,如果未能解决你的问题,请参考以下文章