如何从MySQL Docker容器中重启MySQL服务

18

我正在使用tommylau/mysql docker镜像,它提供了安装了mysql的环境。

但是我无法找到如何在运行中的容器内重启mysql服务(没有mysql服务或/etc/init.d/mysqld文件)

有任何想法如何找到重启mysql的方法吗?


2
你可以重新启动整个容器吗? - maxm
1
我想停止/重新启动进程将会终止容器。 - maxm
1
根据https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-more-topics.html,`mysqld`位于`/usr/sbin/mysqld`。 - Aidin
2个回答

30

如果您登录到容器并尝试重新启动服务,它实际上会在mysql进程停止的那一点上杀死容器,因此它将永远不会启动(因为容器已退出)。

最好的方法是使用以下命令简单地重启容器:

docker restart [ContainerID]

1
谢谢。在一个旧的Ubuntu 14.x盒子上为Docker/MySQL设置工作了。 - MarcoZen
2
这不是问题的答案。您可以像其他Docker容器一样重新启动Docker容器,但这并不能回答原始问题。 - foki
3
@foki 经过进一步的研究,官方的mysql镜像不提供在容器内重启MySQL进程的功能。我所提供的答案是我能提供的最接近问题的答案。我本可以提供不太有帮助的答案“你不能”,但这并不符合SO社区的精神。 - mtt_g
@mtt_g 好的。 - foki
迄今为止最简单的解决方案 - downvoteit

-12

一种简单的方式进入您的容器

docker exec -it [containername/id] bin/bash

进入容器后重新启动MySQL

restart mysql

或者像上面的答案一样,只需重新启动您的容器即可。


这取决于所使用的图像类型和其中的服务管理实用程序。如果重启过程是如何管理的,也会有所不同,如果它停止 PID 1 进程,那么容器将停止,并且需要手动启动(除非在最初运行容器时使用了 --restart always)。 - mtt_g
这里应该是:service mysql restart - mishaikon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接