mysql - 为什么 docker start 比 docker run 快很多

标签 mysql docker

我使用 mysql image以这个命令开头的

 docker run --name test-mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d -p 3306:3306 mysql

当 docker 在后台运行时,另一个应用程序需要大约一分钟才能连接到端口 3306。

之后,我用 docker stop test-mysql 停止这个容器,然后用 docker start test-mysql 启动它。在第二种情况下,使用启动命令,应用程序可以在 5 秒后连接到端口 3306。

现在我使用 docker commit test-mysql mysql2 从停止的容器中获取快照,并使用 docker run -d mysql2 运行它,但在这种情况下,应用程序可以一分钟后连接到mysql2!

所以,

  1. stopped container 是怎么回事,5s 就可以启动并负责,但是 mysql image 做不到?

  2. 有没有办法在容器运行后拍快照,10秒内负责?

注意:Mysql 镜像有一个入口点,它需要一分钟以上的时间才能启动。

最佳答案

  1. 看看这里:https://stackoverflow.com/a/34783353/7719775第一个答案。
  2. 第二,你应该看看这里https://docs.docker.com/engine/reference/commandline/commit/ , 但即使在这种情况下 docker start 也会比 docker run 命令更快

关于mysql - 为什么 docker start 比 docker run 快很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650387/

相关文章:

sql - 这可以在一个sql查询中完成吗?

mysql - 意外的 MySQL "foreign key constraint fails.."消息

mysql - 结合数据库查询

python - 如何在 intellij 中调试 python 容器?

linux - 为什么docker不将主机操作系统用于所有目的

php - 设置PhpStorm和Docker进行PHP开发,而无需在主机上安装PHP

docker - Docker无法公开mesos端口5050

php - 使用PHP在mysql更新中影响的行

mysql - 是否可以根据输入参数之一来决定 SQLWhere 子句的条件?

Docker overlay2文件夹吃磁盘