上一篇写到的Mac版docker安装centos7以及安装宝塔后的环境自启,是在宿主机上运行容器exec命令,严格意义上不算是开机自启。
下面是利用dockerfile来做到真实容器自启后的环境自启动。
创建dockerfile文件,引入一下代码(去掉##以及后续的注释)
FROM baota ##本地打包commit的镜像名(可以把之前的基于centos7安装的宝塔环境commit打包成一个新的镜像) COPY bt_service_at_login.sh /root/bt_service_at_login.sh ##当前目录的sh文件 copy到的容器目录 RUN chmod +x /root/bt_service_at_login.sh ##给容器脚本文件权限 WORKDIR /root ##设置工作目录 ENTRYPOINT /root/bt_service_at_login.sh && tail -f /dev/null ##执行脚本
bt_service_at_login.sh文件代码
#docker bt service开机自启脚本 sleep 1;/usr/bin/bt restart; /etc/init.d/nginx restart; /etc/init.d/php-fpm-72 restart; /etc/init.d/php-fpm-74 restart; /etc/init.d/mysqld restart; /etc/init.d/redis restart;
然后执行docker build -t imagename .
至此,基本上算完事儿了。接下来就是docker run -it -d --restart=always --name containername -p ··· -v ··· imagename
下面是我的docker每次启动时,自动运行的环境自启命令。而不用宿主机去主动跑相关启动命令了
