docker的容器不会启动与MySQL的泊坞窗图像

我使用docker容器与MySQL官方图像创build超过11个数据库容器,(容器1到容器11)。 设置好后,所有的容器都运行良好,直到容器9。 在集装箱10,它只启动约1分钟,然后再次停止。 使用docker日志来检查容器,但我什么也没有看到。 停止container9,然后重新启动container10。 它再次运行良好。 情况似乎只有当我有9个MySQL容器,并试图提高10日。 如果我阻止其中一个,然后重新提高它。 那么没有问题。 它是错误吗? 或者我想念docker桥的一些设置?

root@ec8dcb82f64d:/dev/shm# docker restart f4801b57c4cc f4801b57c4cc root@ec8dcb82f64d:/dev/shm# docker ps -a | grep f4801b57c4cc f4801b57c4cc mysql/mysql-server:5.7 "/entrypoint.sh my..." 2 weeks ago Exited (1) 3 seconds ago db root@ec8dcb82f64d:/dev/shm# docker logs f4801b57c4cc Initializing database Database initialized MySQL init process in progress... Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. mysql: [Warning] Using a password on the command line interface can be insecure. mysql: [Warning] Using a password on the command line interface can be insecure. mysql: [Warning] Using a password on the command line interface can be insecure. mysql: [Warning] Using a password on the command line interface can be insecure. /entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* MySQL init process done. Ready for start up. root@ec8dcb82f64d:/dev/shm# 

在后台运行docker events ,然后尝试启动你的第10个容器。 你一定会看到出了什么问题。 下面给出的是启动一个退出的容器和错误的例子。 下面的命令按顺序:

 ~$ sudo docker events & [1] 9414 ~$ sudo docker start 48137950f1b7 2017-08-03T00:01:18.971406558+05:30 network connect c79096ff0fef046d24b2a23907b3cc82c4df0838db2475909f8fa9f796a0418e (container=48137950f1b714797143529d63ec7221d3cbcd38bb6c8d20a241b06ddbd3d27a, name=bridge, type=bridge) 2017-08-03T00:01:19.305063392+05:30 container start 48137950f1b714797143529d63ec7221d3cbcd38bb6c8d20a241b06ddbd3d27a (image=ubuntu, name=modest_northcutt) 48137950f1b7 2017-08-03T00:01:19.305915636+05:30 container die 48137950f1b714797143529d63ec7221d3cbcd38bb6c8d20a241b06ddbd3d27a (exitCode=0, image=ubuntu, name=modest_northcutt) 

希望你能弄清楚。

我想我在一个星期后就已经达成了解决scheme,尽pipe我不明白会发生什么。 以下是我尝试过的,到目前为止,我可以调出最多20个容器,没有任何问题

1:尝试创build一个dummpy的mysql容器进行testing

 $ docker run -e MYSQL_ROOT_PASSWORD=password mysql Unable to find image 'mysql:latest' locally latest: Pulling from library/mysql ... Initializing database 2017-08-09T17:58:30.034595Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-08-09T17:58:30.039274Z 0 [Warning] InnoDB: io_setup() failed with EAGAIN. Will make 5 attempts before giving up. 2017-08-09T17:58:30.039294Z 0 [Warning] InnoDB: io_setup() attempt 1. 2017-08-09T17:58:30.539495Z 0 [Warning] InnoDB: io_setup() attempt 2. 2017-08-09T17:58:31.039701Z 0 [Warning] InnoDB: io_setup() attempt 3. 2017-08-09T17:58:31.539902Z 0 [Warning] InnoDB: io_setup() attempt 4. 2017-08-09T17:58:32.040115Z 0 [Warning] InnoDB: io_setup() attempt 5. 2017-08-09T17:58:32.540330Z 0 [ERROR] InnoDB: io_setup() failed with EAGAIN after 5 attempts. 2017-08-09T17:58:32.540378Z 0 [ERROR] InnoDB: Cannot initialize AIO sub-system 2017-08-09T17:58:32.540390Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error 2017-08-09T17:58:32.540401Z 0 [ERROR] Plugin 'InnoDB' init function returned error. 2017-08-09T17:58:32.540408Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2017-08-09T17:58:32.540412Z 0 [ERROR] Failed to initialize plugins. 2017-08-09T17:58:32.540415Z 0 [ERROR] Aborting 

并用EAGAIN 2命中io_setup()失败的错误代码:检查aio-max-nr的当前值

 $sysctl fs.aio-max-nr fs.aio-max-nr = 65536 

3:将aio-max-nr的值增加到2097152

 $sudo sysctl -w fs.aio-max-nr=2097152 

3:启动mysql服务
4:尝试创build更多的mysqlcontainer,并提出原来的一个没有问题