停止Nginx Docker容器

我试图阻止运行Nginx的Docker容器,只有在该Nginx实例的access.log中没有活动一段时间之后.

是否可以从容器内部停止Docker容器?我能想到的另一个解决方案是在主机操作系统上运行一个cron来检查/ var / lib / docker / aufs / mnt / [container id] /但是我打算启动大量的容器而不愿意必须保留一份ID列表.

解决方法:

当容器中的主进程停止时,docker容器停止.

我设置了一个小的dockerfile和一个启动脚本来展示它在你的情况下如何工作:

Dockerfile

FROM Nginx
copY start.sh /
CMD ["/start.sh"]

start.sh

#!/bin/bash
Nginx &
sleep 20
# replace sleep 20 with your test of inactivity 
Nginx stop

构建容器,运行和测试

$docker build -t ng .

$docker run -d ng 

$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3a373e721da7        ng:latest           "/start.sh"         4 seconds ago       Up 3 seconds        443/tcp, 80/tcp     distracted_colden   
$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3a373e721da7        ng:latest           "/start.sh"         16 seconds ago      Up 16 seconds       80/tcp, 443/tcp     distracted_colden   
$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...