无法关闭高负载docker mysql

无法关闭高负载docker mysql,mysql,linux,bash,docker,shutdown,Mysql,Linux,Bash,Docker,Shutdown,我有一个脚本,每3秒钟启动一个docker,直到有20个docker。之后,当一个完成时,另一个docker将被启动 在docker中,我启动了一个bash脚本,它将启动apache2、mysql和一个节点脚本。过了一会儿,节点脚本结束,docker关闭 但有时(完全随机),码头工人将永远挂在那里,而不是关闭。我甚至不能用docker stop或docker kill从主机上关闭它。如果我尝试重新启动主机,主机将不会完全关闭。我检查了docker的统计数据,docker只是停留在那里,cpu使用

我有一个脚本,每3秒钟启动一个docker,直到有20个docker。之后,当一个完成时,另一个docker将被启动

在docker中,我启动了一个bash脚本,它将启动apache2、mysql和一个节点脚本。过了一会儿,节点脚本结束,docker关闭

但有时(完全随机),码头工人将永远挂在那里,而不是关闭。我甚至不能用docker stop或docker kill从主机上关闭它。如果我尝试重新启动主机,主机将不会完全关闭。我检查了docker的统计数据,docker只是停留在那里,cpu使用率几乎为0%

在尝试手动关闭bash脚本中的每个进程时,我发现mysql不会关闭。我尝试了sudo服务mysql stop和sudo mysqladmin shutdown,但都失败了

做一个docker top,我可以看到剩下的唯一进程是mysql,它目前正在运行

如果这有帮助的话,我将使用docker run--rm test01/bin/bash/home/gps/entry_point.sh 5811fafb27517f523d1b96e5 master命令启动docker

我的主人和码头工人都是debian jessie,而且大部分时间都很好用

我不知道这是否与问题有关,但当我在主机上执行dmesg时,我会收到大量THOSE消息:

[ 4197.073458] docker0: port 7(veth27ee643) entered disabled state
[ 4197.764473] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.809072] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.855061] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.856599] device veth0ef0a9b entered promiscuous mode
[ 4197.857560] IPv6: ADDRCONF(NETDEV_UP): veth0ef0a9b: link is not ready
[ 4197.858392] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4197.859215] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4198.019272] docker0: port 7(veth0ef0a9b) entered disabled state
[ 4198.119297] IPv6: ADDRCONF(NETDEV_CHANGE): veth0ef0a9b: link becomes ready
[ 4198.120103] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4198.120873] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4213.166227] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4523.921860] docker0: port 3(veth65e0351) entered disabled state
[ 4523.973714] docker0: port 3(veth65e0351) entered disabled state
[ 4523.974654] device veth65e0351 left promiscuous mode
[ 4523.975105] docker0: port 3(veth65e0351) entered disabled state
[ 4525.079938] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.136297] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.196855] aufs au_opts_verify:1570:dockerd[801]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.219241] device veth1658809 entered promiscuous mode
[ 4525.219777] IPv6: ADDRCONF(NETDEV_UP): veth1658809: link is not ready
[ 4525.220241] docker0: port 3(veth1658809) entered forwarding state
[ 4525.220720] docker0: port 3(veth1658809) entered forwarding state
[ 4525.221500] docker0: port 3(veth1658809) entered disabled state
[ 4525.494605] IPv6: ADDRCONF(NETDEV_CHANGE): veth1658809: link becomes ready
[ 4525.495218] docker0: port 3(veth1658809) entered forwarding state
[ 4525.495727] docker0: port 3(veth1658809) entered forwarding state
[ 4540.549216] docker0: port 3(veth1658809) entered forwarding state
知道是什么导致了这个问题吗

编辑:不确定这是否有帮助,但是做sudo journalctl-fu docker.service我会得到这些日志

Oct 27 09:03:32 Server1 dockerd[475]: time="2016-10-27T09:03:32.882004522-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:39 Server1 dockerd[475]: time="2016-10-27T09:03:39.56717629-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:45 Server1 dockerd[475]: time="2016-10-27T09:03:45.348335753-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:52 Server1 dockerd[475]: time="2016-10-27T09:03:52.016592953-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:05:12 Server1 dockerd[475]: time="2016-10-27T09:05:12.142848267-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:15:35 Server1 dockerd[475]: time="2016-10-27T09:15:35.175607108-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:23:50 Server1 dockerd[475]: time="2016-10-27T09:23:50.428877153-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:26:29 Server1 dockerd[475]: time="2016-10-27T09:26:29.223240463-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:31:56 Server1 dockerd[475]: time="2016-10-27T09:31:56.446979648-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 10:37:18 Server1 dockerd[475]: time="2016-10-27T10:37:18.81258037-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
请试试这个:

sudo chgrp mysql /etc/mysql/debian.cnf; sudo chmod 640 /etc/mysql/debian.cnf
nano /etc/systemd/system/mysql.service
[service]
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
sudo chmod 755 /etc/systemd/system/mysql.service
sudo systemctl daemon-reload

出于好奇,你为什么要启动和关闭所有这些容器?@R0MANARMY我们有一堆函数测试脚本,通过docker这样做可以帮助我们完全隔离测试,我们可以通过机器(目前为8台机器)并行运行+20个测试。启动测试的脚本将捕获所有消息并将其显示在主控制台上。太棒了,您的容器使用的是什么基本图像?请发布悬挂容器的docker日志输出?@Farhad docker logs只返回我的软件日志(36888行日志),没有关于docker的错误消息,你是说另一种原木吗?我在晚上测试了它,可惜它不起作用。有时我的docker日志会在停止MariaDB数据库服务器后结束:mysqld失败!,有时,失败的人甚至没有表现出来