docker - 发出“docker container stop”命令后如何执行命令/脚本?
问题描述
我希望容器在发出命令“docker container stop”后停止之前运行确定的命令。我发现了如何在终止 docker 容器时执行脚本的问题,但它并没有真正起作用,因为容器在创建它后一直崩溃,即使我在运行时添加了一个无限循环来执行。我将容器运行为: docker run -ti -d --name test stop_test
有什么问题?
这是我的码头文件:
#Starting with a ubuntu image
FROM ubuntu
#Installing all dependencies
#Copying files
COPY loop.sh .
COPY commands.sh .
COPY stop.sh .
#Running new container
RUN chmod +x commands.sh
RUN chmod +x stop.sh
CMD ["./commands.sh"]
#Adding Entrypoint
ENTRYPOINT [ "/bin/bash", "-c", "./stop.sh" ]
停止脚本是:
#!/bin/bash
#Defining cleanup procedure
cleanup() {
echo "Container stopped. Running script..."
}
#Trapping the SIGTERM
trap 'cleanup' SIGTERM
#Execute a command
less /etc/password &
#Wait
wait $!
#Cleanup
cleanup
循环脚本:
#!/bin/bash
while :
do
sleep 300
done
命令脚本是:
#!/bin/bash
./loop.sh
解决方案
问题出在stop.sh脚本正在执行的命令中。我用无限循环脚本替换它并且运行良好。
推荐阅读
- python - Python PyMongo / 将输出显示为纯字符串
- javascript - 将两个不同类 rxjs 的两个不同 observable 分组
- java - HTTP 传输错误:java.net.ConnectException:连接超时:在 Soap ws 客户端中连接
- css - 如何使用 flexbox 将项目与 flex-end 对齐并使用 flex grow 将文本与底部对齐?
- python - 如何针对高采样频率时间序列数据优化 influxDB 配置
- eclipse - 修复 Eclipse Pydev Text Highlight Color 问题
- javascript - 如何在 img src 属性中克隆 url 参数值?
- listview - Odoo:在列表视图上截断结果
- android - 当意图打开活动时,getReferrer 返回 null
- cloud - Google Cloud Datastore - 是否可以在不下载实体的情况下更新实体?