注意:以下所有操作都是在容器里面
1,首先去/etc/init.d目录下查看你需要启动服务的文件,如图:
2,在/etc目录下创建rc.local文件:
$ vim /etc/rc.local
并写入以下内容然后保存:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#写入你需要自启的服务,我这里自启了postgresql,thingsboard
/etc/init.d/postgresql start
/etc/init.d/thingsboard start
exit 0
3,在根目录下创建脚本文件,例如:
$ cd /
$ vim start.sh
将以下内容写入start.sh文件并保存:
#!/bin/sh
/etc/rc.local #execute the commands in /etc/rc.local
/bin/bash
4,最好更新下镜像并重启一个新的容器测试是否成功,注意在执行docker run命令时最后要加上./start.sh,举例:
$ sudo docker run -itd --privileged=true -p 8080:8080 -p 8779:8779 -p 8061:8061 --restart=always -v /home/thingsboard/:/home/thingsboard/ --name thingsboard thingsboard:v1 /bin/bash ./start.sh
Done!