运行Nginx Docker容器后无法交互,如何实现容器内命令执行?
解决Nginx Docker容器无法交互及执行命令的问题
两种可行方案:
方案1:先后台启动容器,再进入交互
- 先启动Nginx容器并后台运行:
docker run -d --name my-nginx nginx - 进入运行中的容器,开启交互式shell:
如果容器内没有bash,改用docker exec -ti my-nginx /bin/bash/bin/sh即可。
方案2:直接以shell启动容器(需手动启动Nginx)
直接指定shell作为容器的启动命令,启动后直接进入交互式环境:
docker run -ti nginx /bin/bash
此时Nginx不会自动启动,若需要运行Nginx,在容器内执行:
nginx -g "daemon off;"
为什么docker run -ti nginx无法交互?
Nginx官方镜像的默认启动命令是nginx -g "daemon off;",这个命令会让Nginx前台运行,但它不是交互式shell进程。-ti参数只是分配了终端并开启交互模式,但当前运行的进程是Nginx而非shell,因此无法进行命令交互。
内容的提问来源于stack exchange,提问作者it.drive.view
相关产品推荐
相关产品推荐

