赞
踩
1.问题描述:
启动docker容器后,执行容器内脚本
2.案例需求:
现在需要用docker起一个centos7的环境,安装一个pyhton,跑一个定时任务,当时执行脚本。
3.解决:
开始尝试 使用systemctl 启动crond 执行pyhton项目脚本,结果docker容器中没有systemctl
注:如想在容器内使用systemctl,在启动容器时需加权限 如:docker run --privileged -idt -p 10028:8080 --name graph graph:v2 /usr/sbin/init && docker exec -it graph /bin/bash -c 'nginx && systemctl start mariadb ' && docker exec -i graph bash /data/knowledge_graph/graph.sh
第二次尝试 写一个启动crond 的脚本,放到/etc/init.d目录下,docker容器启动后会执行该目录下脚本,但没有生效
第三次
写一个启动crond 的脚本,使用 docker exec -it 【容器名或id】bash 执行
如
docker run -idt --name green -v /data/log:/root/log green:latest && docker exec -it green bash /root/crondtask.sh
docker run 启动容器,并执行容器中crondtask.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。