Docker--避免import镜像无法自启服务

由于在内网部署,导致我必须使用exportimport这种方式进行加载我的镜像。在部署的时候我发现,当我启动容器可以正常起来,却没有启动我容器里面对应的服务。在思来想去,其实是由于我并没有吧我的脚本设置为启动容器就启动。知道问题后,我已centos7以上的版本介绍,如何设置开机启动我们的脚本。

准备脚本

脚本名为:autoStart.sh,内容如下

#!/bin/bash
/usr/local/tomcat/bin/startup.sh  

方法一

这种方式将我们的脚本增加到启动配置中。

  1. 将我们的脚本加入到/etc/rc.d/init.d目录下
mv /houshuai/autoStart.sh /etc/rc.d/init.d
  1. 赋予脚本可执行权限
chmod +x /etc/rc.d/init.d/autoStart.sh

3 进行将脚本加入到启动配置中

chkconfig --add /etc/rc.d/init.d/autostart.sh
chkconfig /etc/rc.d/init.d/autostart.sh on

方法二

进行将我们的脚本设置为启动项中,我们只需要进行systemctl命令进行启动。

  • 进行编写如下服务:此处以nginx.service为例子
# 当前服务的说明
[Unit]    
# 描述服务
Description=nginx - high performance web server  
# 描述服务的类型
After=network.target remote-fs.target nss-lookup.target 

# 服务启动的参数设置
[Service]  
# 是后台启动模式
Type=forking  
# 服务具体运行命令
ExecStart=/usr/local/nginx/sbin/nginx -c  /usr/local/nginx/conf/nginx.conf  
# 服务重启命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 服务停止命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop
# PrivateTmp=True表示给服务分配独立的临时空间
# 注意:启动、重启、停止命令全部要求使用绝对路径

# 服务安装的相关设置,可设置为多用户
[Install]
WantedBy=multi-user.target
  • 将编写好的文件存放到/usr/lib/systemd/system并赋予754权限
chmod 754 nginx.service
  • 进行设置开机自启
systemctl enable nginx.service

常用的其他命令

  • 启动nginx服务
    systemctl start nginx.service
  • 设置开机自启动
    systemctl enable nginx.service
  • 停止开机自启动
    systemctl disable nginx.service
  • 查看服务当前状态
    systemctl status nginx.service
  • 重新启动服务
    systemctl restart nginx.service
  • 查看所有已启动的服务
    systemctl list-units --type=service

猜你喜欢

转载自blog.csdn.net/qq_15807167/article/details/80621537
今日推荐