我试图阻止运行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 举报,一经查实,本站将立刻删除。