微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

停止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
$

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐