Docker中启动服务的新思路

之前在NAS上开启了很多服务,但是因为Docker的固有原因,并不能直接在crontab中或者通过systemctl实现服务的自启动,本来以为想要解决这个问题只能通过自己手动编写DockerFile实现,但是今天发现了一个旁门左道,似乎可以实现这些任务的自启动。

其实NAS上面的ubuntu容器默认是运行了一个bash,这样我们就可以通过终端去访问这个容器了,本来想着可以把这个命令改成我们自己定义的一个脚本,但是GUI界面似乎是不支持这个操作的,反正我找了挺久是没找到设置的具体位置。

此路不通,只有另想它法,既然镜像启动的时候运行了一个bash命令,那么我们可不可以从这个bash命令上做做文章呢?

答案是可以!!我们知道bash在运行的时候支持通过.bash_profile或者.bashrc实现比如设置别名等操作的前置命令,也就是说在这个脚本里面的命令都会在运行bash的时候被调用,那么我们是不是把需要开启的服务放到这个文件里面就行了呢?

答案是可以!!我们直接在.bashrc的末尾添加需要运行的命令就可以了,当然周期性的任务还是放到crontab中就好了,而cron的服务我们通过.bashrc开启就可以了,这样重启docker镜像之后,所有的服务都可以自动启动了,是不是非常完美?

答案是完美!!可以继续愉快的玩NAS了,还是个不断电的系统,爽歪歪呀。

发表新评论