我使用 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!
所以,
stopped container 是怎么回事,5s 就可以启动并负责,但是 mysql image 做不到?
有没有办法在容器运行后拍快照,10秒内负责?
注意:Mysql 镜像有一个入口点,它需要一分钟以上的时间才能启动。
最佳答案
- 看看这里:https://stackoverflow.com/a/34783353/7719775第一个答案。
- 第二,你应该看看这里https://docs.docker.com/engine/reference/commandline/commit/ , 但即使在这种情况下 docker start 也会比 docker run 命令更快
关于mysql - 为什么 docker start 比 docker run 快很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650387/