ubuntu docker-compose设置开机自启动一些容器

基础知识

	  	一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在
	Linux系上,这个表通常位于专门文件/etc/inittab中。另外一些系统
	(比如现在流行的Ubuntu Linux发行版)则采用/etc/init.d目录,将开机时
	启动或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录
	下的入口(entry)启动,这里的X代表运行级(run level)。
	  	Linux操作系统的init系统采用了运行级。运行级决定了init进程运行
	/etc/inittab文件或/etc/rcX.d目录中定义好的某些特定类型的进程。 
	Linux操作系统有5个启动运行级。
		运行级为1时,只启动基本的系统进程以及一个控制台终端进程。
	我们称之为单用户模式。单用户模式通常用来在系统有问题时进行紧的文件系统
	维护。显然,在这种模式下,仅有一个人(通常是系统管理员)能登录到系统上
	操作数据。
		标准的启动运行级是3。在这个运行级上,大多数应用软件,比如网络支持
	程序,都会启动。另一个Linux中常见的运行级是5。在这个运行级上系统会启动
	图形化的X Window系统,允许用户通过图形化桌面窗口登录系统
		Linux系统可以通过调整启动运行级来控制整个系统的功能。通过将运行级
	从3调整成5,系统就可以从基于控制台的系统变成更先进的图形化
	X Window系统。

正文

	既然知道了,ubuntu系统启动的时候,会启动加载/etc/init.d文件夹下的
shell脚本,那么我们就可以把自己想要自启动的应用写到脚本中去,然后让其开机
的时候自己加载就好了。但是注意一点,放到/etc/init.d的shell脚本跟普通的
脚本不太一样。下面来区分下不同之处。
  1. 第一行
    第一行必须要有类似这种的:#!:
	#!/bin/bash
  1. 必须要有以下这些描述中的某些内容:
 ### BEGIN INIT INFO
 # Provides:          skeleton
 # Required-Start:    $remote_fs $syslog
 # Required-Stop:     $remote_fs $syslog
 # Should-Start:      $portmap
 # Should-Stop:       $portmap
 # X-Start-Before:    nis
 # X-Stop-After:      nis
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # X-Interactive:     true
 # Short-Description: Example initscript
 # Description:       This file should be used to construct scripts to be
 #                    placed in /etc/init.d.
 ### END INIT INFO

其实这些内容是在/etc/init.d中的README文件中的。接下来我就写一个例子
来说明一下。我是用的docker-compose启动一些容器的:

#!/bin/bash

### BEGIN INIT INFO
# Provides:         kubefate
# Required-Start:   $remote_fs $syslog
# Required-Stop:    $remote_fs $syslog
# Should-Start:     docker docker-compose
# Should-Stop:     docker docker-compose
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Description:      Start the kubefate service
### END INIT INFO

/usr/local/bin/docker-compose -f /data/projects/fate/confs-9999/docker-compose.yml start
/usr/local/bin/docker-compose -f /data/projects/fate/serving-9999/docker-compose.yml start

exit 0

然后接下来:

1.创建软docker-compose连接:
	cd /usr/local/bin && ln -s /usr/bin/docker-compose   
2.把这个文件(kubefate-start.sh)放到/etc/init.d目录下;
	然后修改下权限:sudo chmod +x kubefate-start.sh
3.注意把脚本中的docker-compose.yml文件的路径改下
4.sudo update-rc.d kubefate-start.sh defaults
5.reboot
完成

到此为止。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值