我在docker里在ubuntu(18.04版本)镜像的基础上安装了nginx,mysql,php,创建了一个新的镜像,请问如何在每次启动该容器的时候自动启动里面的服务呢?
现在的状况是我每次以下面的命令进去:
docker run -it -p 8009:80 -v /home/yhm:/var/www/html myserver:1.13 /bin/bash
进去后我还得一个一个手动的启动各个服务,请问如何配置才能让我一进去这些服务就自启动了呢?我按网上说的在 /etc/rc.local里面加上了(并且该文件对所有用户也都加上了可执行权限):
service nginx start
service mysql start
service php7.4-fpm start
但是不起作用
我是刚开始学习docker的菜鸟,目前这个新镜像不是通过dockerfile创建的,是通过在容器里面改东西然后commit创建出来的,所以各位大神不要回答说在dockerfile里面执行啥命令哈,谢谢了。
我想的是容器启动的时候在ubuntu系统的哪个目录里面放个脚本启动自己需要的服务,不知道行不行?
额, 首先啊,不清楚你的 ubuntu 是啥版本的. 怎么还在用 service 命令启动服务呢?你用的是比较老的版本么? 我记得好几年前的 ubuntu 都已经是 systemd了.启动服务应该是 systemctl start ...了. 另外.不管是 systemd 还是 init.d ,你想通过这个命令启动服务,你要安装对应的服务启停脚本啊. deb 大部分会自动安装这个服务脚本,你要要验证下这个命令能不能启动啊..
然后才是开机运行的,有好几种方式可以设置, 首先 在服务里设置开机启动, systemctl enable ..., init.d 的我忘记是啥了. 或者 /etc/rc.d/rc.local 或者在 crontab 里使用 @reboot ...... 等方式都可以,前提是你的脚本真的能启动服务..