5

嗨,docker 有一个公共的 alpine mysql 映像。 https://hub.docker.com/r/wangxian/alpine-mysql/

我想在其中运行mysql。

当我在mysql命令之后执行命令时出现此错误docker run

docker run -i -t wangxian/alpine-mysql sh
/app # mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory")

那么我从头开始安装所有东西。我制作了 alpine 的新图像,然后安装了这些东西:

apt add mysql mysql-client

然后我再次输入mysql并得到同样的错误。这看起来像是一个常见错误,它发生在所有 alpine 映像上,因为这是 alpine 的全新安装。

有什么解决办法吗?

编辑:当我做 docker run -i -t wangxian/alpine-mysql

2016-08-17 12:51:41 140215609339688 [Note] Plugin 'FEEDBACK' is disabled.
2016-08-17 12:51:41 140215609339688 [Note] Server socket created on IP: '::'.
2016-08-17 12:51:41 140215609339688 [Note] /usr/bin/mysqld: ready for connections.
Version: '10.1.11-MariaDB-log'  socket: '/run/mysqld/mysqld.sock'  port: 3306  MariaDB Server

然后我在命令行中打开新选项卡,同时保持该选项卡打开,我再次收到相同的错误:

docker run -i -t wangxian/alpine-mysql sh
/app # mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory")
4

1 回答 1

1

那不是您使用的图像的真正工作方式。在 Docker Hub 页面上,您可以看到它应该如何运行。它有一个启动脚本,当您在运行时传递“sh”命令时不会调用它,因此 mysql 没有运行。当您在没有任何命令的情况下运行映像时,它会启动 mysql 并为用户名/密码设置一些初始值。然后您可以使用 docker exec 进入正在运行的容器,也可以将其他容器链接到它

于 2016-08-17T12:49:52.137 回答