mysql容器启动服务_如何在运行docker容器时自动启动服务?

问题

在你的Dockerfile中

RUN service mysql restart && /tmp/setup.sh

首先,docker镜像不快照您的运行进程,您的RUN命令只是在docker构建阶段运行,您需要指定命令运行时容器开始使用CMD或ENTRYPOINT命令,如下所示

CMD mysql start

其次Docker容器需要进程(最后一个命令)保持运行,否则容器将退出。因此正常的服务mysql启动命令不能直接在Dockerfile中使用

解决方案:为了保持进程正常运行:

通常有三种方式的Dockerfile

>使用service命令,并附加非end命令后,像tail -F

CMD service mysql start && tail -F /var/log/mysql/error.log

>或使用前台命令来执行此操作

CMD /usr/bin/mysqld_safe

>或将脚本包装到start.sh中并将其放在最后

CMD /start.sh

对于启动用户,不推荐supervisord,最好对一个容器使用单个服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值