我正在尝试通过以下命令在 Docker 中初始化 mysql 容器:
docker run --name some-name -e MYSQL_ROOT_PASSWORD=my-password -e MYSQL_DATABASE=db-name mysql/mysql-server
它成功拉取容器,运行到这一行时停在那里,永远不动:
2022-02-28T09:10:03.040757Z 0 [系统] [MY-010931] [服务器] /usr/sbin/mysqld:准备连接。版本:“8.0.28”套接字:“/var/run/mysqld/mysqld.sock”端口:3306 MySQL 社区服务器 - GPL.
我尝试添加这个标志 -h 127.0.0.1
仍然停在同一行。
这是 docker container ls -a
的输出:
70579fec1ed2 mysql“docker-entrypoint.s…”3小时前退出(1)3小时前spawning-pool
这是 docker logs $(container-name)
的输出的最后一行:
2022-02-28T10:24:24.316843Z 0 [系统] [MY-010910] [服务器] /usr/sbin/mysqld: 关闭完成 (mysqld 8.0.28) MySQL 社区服务器 - GPL.
我发现解决办法是添加以下标志:
-it
并在末尾添加/bin/bash
所以最终命令的结尾看起来像这样:
-it -d mysql:mysql-server /bin/bash
这将在mysql的后台运行一个终端,并防止其关闭。 只是我希望如果这会导致任何未来错误,有人能纠正我,因为一个bash终端会一直运行。