为什么我的 Nginx docker 容器在指定 --restart 开关时无法启动

Why will my Nginx docker container not start when the --restart switch is specified

我 运行在 Ubuntu 14.04 上使用 Nginx 作为我的 .NET Core Web API 的反向代理。效果很好,从命令行开始:

docker run --name=nginx -d -v /mercury/config/nginx:/etc/nginx/conf.d -v /mercury/logs/nginx:/var/log/nginx -p0.0.0.0:443:443 -t docker-registry.public-upstream.gray.net/nginx

我希望容器在崩溃或服务器重新启动时重新启动,这(根据文档)可以通过在命令行中添加 --restart=unless-stopped 来实现。

但是,当我这样做时,出现错误:

docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"--restart=unless-stopped\": executable file not found in $PATH".

我不确定从这里到哪里去 - 它在寻找什么可执行文件,因为我正在 运行 一个容器?为什么这个错误会随着标志发生,但 docker 没有它也可以正常启动容器?

我已经研究了一个 Google,但未能找到解决方案。有很多类似的问题,但很少有解决方案和 none 似乎适用于我的情况。

编辑: 我应该提到,在我的情况下,这是 nginx 特有的——我自己的容器 运行 可以使用指定的 --restart 开关。

试试这个。

docker run --name=nginx --restart unless-stopped -d -v /mercury/config/nginx:/etc/nginx/conf.d -v /mercury/logs/nginx:/var/log/nginx -p0.0.0.0:443:443 -t docker-registry.public-upstream.gray.net/nginx