首页 > 解决方案 > 无法从 Docker 容器连接到主机 MySQL 数据库

问题描述

我安装了最新的 Docker CS,从 Docker Hub获得了一个LAMP 容器。它运行 MySQL (MariaDB) 服务器和 Apache 服务器。我需要它的 MySQL 服务器与位于主机上的数据库一起工作(或者,或者,在一个单独的 docker 值上创建一个数据库并使用它,我猜)。

说明说启动容器为docker run -d -p [HOST WWW PORT NUMBER]:80 -p [HOST DB PORT NUMBER]:3306 -v [HOST WWW DOCUMENT ROOT]:/var/www/html -v [HOST DB DOCUMENT ROOT]:/var/lib/mysql fauria/lamp

我不确定是什么[HOST DB DOCUMENT ROOT]——它是托管 mysql 数据库的位置吗?或者它是容器中的数据库服务器将数据写入的主机上的任何位置?

我运行它docker run --name mycontainer --rm -p 80:80 -e LOG_STDOUT=true -e LOG_STDERR=true -e LOG_LEVEL=debug -v /home/username/dev/appname/www:/var/www/html -v /home/username/dev/appname/wwwdb:/var/lib/mysql fauria/lamp

这里/home/username/dev/appname/wwwdb只是我创建的一个空目录。我还绑定/var/lib/mysql/了我从select @@datadir;主机 MariaDB 安装中获得的内容。结果相同。

然后我连接到 container:docker exec -i -t mycontainer bash并运行mysql -u root. 我得到这个错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

我确定我做的不对,但不确定是什么。

标签: mysqldocker

解决方案


推荐阅读