无法在 WSL2 上启动 MySQL docker 容器

时间:2021-07-11 09:23:03

标签: mysql docker wsl-2

我目前正在使用 docker 容器在 WSL2 上运行 MySQL,但我在运行此容器时遇到了问题。我检查了 docker 日志并得到以下问题 -

Docker 启动,然后立即退出并显示代码 (1),然后我检查了 docker 日志,它给出的错误为 -

<块引用>

[ERROR] 'Setup of socket: '/var/run/mysqld/mysqlx.sock' 失败,另一个带有 PID 的进程正在使用 UNIX 套接字文件'

[错误] 另一个带有 pid 的进程正在使用 unix 套接字文件。 [错误] 无法设置 unix 套接字锁定文件。 [错误] 正在中止

如何解决此错误并重新启动我的容器?

1 个答案:

答案 0 :(得分:0)

以下是我尝试解决此问题的步骤 -

首先,使用以下命令停止您的 docker 服务 - “sudo service docker stop”

现在,使用以下路径进入我的 Linux 系统中的 docker 文件夹 - /var/lib/docker。

然后在 docker 文件夹中,您需要进入卷文件夹。此文件夹包含所有容器的卷(每个容器的内存) - cd /volumes

进入卷后执行“sudo ls”,您会发现多个带有哈希名称的文件夹。这些文件夹是容器的卷。每个文件夹都以其哈希命名(您需要检查 docker 容器并获取容器卷的哈希。为此,您需要执行以下步骤 -

运行命令“docker检查‘你的容器ID’”。

现在您将获得一个 JSON 文件。它是你的 docker 容器的配置文件。

在此 JSON 文件中搜索 Mounts 键。在 Mounts 中,您将获得卷的名称(哈希)。 (您还将获得您的卷在 Mounts 中的路径。在 Mounts 中,“Name”键是您的卷名,“Source”是您的卷所在的路径。))。

获得卷的名称后,您可以进入卷文件夹,在该文件夹中您会找到“_data”文件夹。进入这个文件夹。

最后在“_data”文件夹中使用 sudo ls 命令,您将找到一个名为 mysql.sock.lock 的文件夹。通过“rm -f mysql.sock.lock”删除此文件夹。

现在重启你的 docker 服务,然后启动你的 docker 容器。它将开始工作。

注意 - 当您在 docker 容器文件夹中时,请在每个命令中使用 sudo。

相关问题