centos7容器使用systemctl启动服务的方法
1.实现思路
思路:centos7想以systemctl命令启动,就需要开启init进程,init进程必须在系统启动的时候开启,作为第一个进程,init无法在脚本中启动,因此只能是将容器的启动命令设置成/usr/sbin/init,然后将启动服务的命令写成脚本,然后把执行脚本的命令写入/etc/rc.local中,这样就可以在centos7容器中使用systemctl启动服务了
这种方法特别适合那种喜欢把一个容器做成一个小的VMware虚拟机
以下操作都在容器中执行
2.编写服务启动脚本
1.写脚本
[root@e31b4d686cda ~]# vim /data/entrypoint.sh
#!/bin/bash
systemctl start jenkins
systemctl enable jenkins
tail -f /var/log/jenkins/jenkins.log
[root@e31b4d686cda ~]# chmod a+x /data/entrypoint.sh
2.将启动脚本加到/etc/rc.local文件里,当系统启动时就执行此脚本
[root@e31b4d686cda ~]# vim /etc/rc.local
sh /data/entrypoint.sh
3.编写Dockerfile封装启动命令
[root@k8s-node2 ~/docker-jenkins]# vim Dockerfile
FROM jenkins-centos7:v2-plugin
CMD ["/usr/sbin/init"]
4.构建镜像
[root@k8s-node2 ~/docker-jenkins]# docker build -t jenkins-centos:v2.kxjy.plugins .
Sending build context to Docker daemon 80.78MB
Step 1/2 : FROM jenkins-centos7:v2-plugin
---> 118f358b11b2
Step 2/2 : CMD ["sh","/data/entrypoint.sh"]
---> Running in 667d8ec5d936
Removing intermediate container 667d8ec5d936
---> 4349bb5984f0
Successfully built 4349bb5984f0
Successfully tagged jenkins-centos:v2.kxjy.plugins
原文地址:https://blog.csdn.net/weixin_44953658/article/details/118085684
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。