【发布时间】:2016-08-24 20:44:45
【问题描述】:
标题很长,但应该足够明确。
如果我使用 bash 运行 docker 容器并通过 apt-get install mysql-server 安装 mysql,则运行以下命令:mysql -u root -p
我遇到了一个响亮的:
ERROR 2002 (HY000): 无法通过套接字连接到本地 MySQL 服务器 '/var/run/mysqld/mysqld.sock' (2)
几乎所有安装和使用网络的东西都是如此。
这是否意味着我应该EXPOSE 端口3306?如果主机(容器外)正在使用该端口,但容器内的所有应用程序都希望调用该端口怎么办?即:当我在暴露12345:3306 的同时运行容器时,使用lo 接口的应用程序是否应该使用端口3306 或12345?
我觉得这部分很混乱。 谢谢!
【问题讨论】:
-
这似乎是对 Unix 套接字的抱怨,而不是网络套接字。 (顺便提一下,
install不会启动服务。) -
Bingo 似乎是 mysql 的 pb。我将仔细检查它是否解决了我遇到的其他一些问题。
-
但是出于好奇:为什么要在运行时而不是构建时安装 mysql?
-
它是一个非常长且复杂的交互式安装脚本的一部分。我计划正确地做事,但与此同时我正在手动安装 docker 容器。
-
@OliverCharlesworth 我已经编辑了这个问题,以更好地反映我遇到的真正问题。如果你想提供答案,我会选择它。你是对的。由于某种原因,本地虚拟机在安装服务后会自动启动服务,但 docker 映像没有。
标签: mysql docker docker-container