docker内的容器与容器内的服务自启动

  1. 编写服务文件并注册入service
vi /etc/init.d/zookeeper
case $1 in
        start) su root /usr/lib/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start;;
        stop) su root /usr/lib/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh stop;;
        status) su root /usr/lib/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh status;;
        restart) su root /usr/lib/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh restart;;
*)echo "require start|stop|status|restart";;
esac

chmod +x /etc/init.d/zookeeper
update-rc.d zookeeper defaults

这样就可以用service zookeeper start 启动服务了

  1. 将容器设置为开机自启动
docker update --restart=always 容器名称或容器ID
(docker update cf877cb5ea48 --restart=no  关闭自启)
  1. 在运行时将容器设置为自启动并运行容器内的服务启动脚本
vi /etc/service_init.sh
#!/bin/bash
service mysql start
echo 'mysql start success' >> /etc/service/log/service_init_log.txt

mongod -fork -config /usr/local/mongodb/mongodb.conf
echo 'mongodb start success' >>  /etc/service/service_init_log.txt

supervisord
service supervisor start
echo 'supervisor start success' >>  /etc/service/service_init_log.txt

service zookeeper start
echo 'zookeeper start success' >>  /etc/service/service_init_log.txt

/bin/bash
:wq!

生成并运行容器与容器内的服务脚本

docker run -itd --restart=always --name cs8.6 ubuntu-cs /bin/bash -c "/etc/service_init.sh start"
--ubuntu-cs为镜像名称,docker images查看
  1. docker ps查看cs8.6容器是否运行

  2. docker -d拓展出现容器闪退,该用docker -itd

附:手动启动zookeeper服务
vi docker_start.sh

#!/bin/bash


systemctl start docker

docker exec -it ed45868243b3 /bin/bash

service zookeeper start

/bin/bash

sh docker_start.sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值