![docker 上的 nginx 立即退出](https://linux22.com/image/1634101/docker%20%E4%B8%8A%E7%9A%84%20nginx%20%E7%AB%8B%E5%8D%B3%E9%80%80%E5%87%BA.png)
长话短说:我这里有一个小项目需要静态网站服务。所以我在主开发机器(XUbuntu)上设置了一个 nginx docker 容器。工作美好的当创建
docker run -p 5000:80 -v /someprojectpath:/usr/var/nginx/html:ro --name myweb nginx
然后我有了一台备用的 Raspberry Pi,于是想,“嗯,为什么不把这个容器运行在 pi 上呢?”说了又说:通过 pi 安装 docker 客户端
curl -sSL https://get.docker.com | sh
然后我在 pi(原装 Raspberry Pi 2B,配备 8GB SD 卡,最新 Raspbian)的 /home/pi/www 中创建了一个文件夹,并将其放入上述命令中:
docker run -p 80:80 -v /home/pi/www:/usr/var/nginx/html:ro --name myweb nginx
但这一次,容器在几秒钟之后就退出了,没有提供任何服务。
我搜索了一下,发现了一些关于“daemon:off”的注释,但当我检查容器时,它已经在使用“daemon:off”运行了(或者至少它应该- 不知道如何验证这一点)。
为什么行为会有所不同?我该如何修复提前退出的问题?
更新
只是为了好玩,我尝试了一下docker run hello-world
。它没有给出任何输出!
我检查了两个图像(hello-world和nginx)并确认"Architecture" = arm
。
答案1
将其附加到 docker run 命令的末尾:
-g 'daemon off;'
它应该采用这种语法,而不是您提到的“daemon:off”。
希望有帮助
答案2
找到答案了。
在 Raspberry Pi 上2,你需要明确 ARM 的图像v6。
所以我遇到了arm32v6/nginx
导致missing manifest
错误的情况。
下一步是选择一个明确的版本,例如arm32v6/ngninx:stable-alpine
。
这最终成功了!