Docker: 错误 500 - 无法启动容器

Docker: error 500 - failed to start container

我在 运行 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。有什么帮助吗?

OP 在这里回答。

我设法通过卸载所有以前的 docker 安装解决了这个问题,然后 Digital Ocean's guide 为 Ubuntu 16.04 安装了 Docker。

完成后,我重新配置了我的 Dockerfile 以包含来自 this post 的代码,并且我的 application.ymldocker-cmd 行更改为 docker-cmd: ["/usr/bin/shiny-server.sh"]

我 re-tuned 当然是我的图像,因为我还需要一些其他库和外部依赖项才能工作,但本质上,下载 shiny-server 文件的行就是那些让我开始并让我使用 java -jar shinyproxy-1.0.2.jar 启动应用程序以正确启动 Spring 启动应用程序。

此外,为了调试容器内闪亮的应用程序 运行(当然,并非一切正常),我将 Dockerfile 中的 CMD 行更改为 CMD ["R", "-e", "shiny::runApp('/srv/shiny-server')"],以及前 docker-cmd 行到 docker-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server/')"]