docker如何启动容器并执行容器内脚本

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值