【问题标题】:Docker + MariaDB gives me ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)Docker + MariaDB 给我 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
【发布时间】:2020-07-12 08:08:09
【问题描述】:

我尝试在 Debian 容器中安装和运行 MariaDB。一切正常,直到我想运行mysql -u root。这是我的 Dockerfile。

FROM debian:buster-slim

RUN apt-get update && \
    apt-get install -y curl \
                       build-essential

RUN apt-get install -y mariadb-client
RUN apt-get install -y mariadb-server
RUN service mysql start
RUN mysql -u root

我收到以下错误消息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

【问题讨论】:

    标签: docker mariadb debian dockerfile


    【解决方案1】:

    你不能只在构建过程中运行 mysql 进程。应该在运行容器时完成。例子: 构建:

    FROM debian:buster-slim
    
    RUN apt-get update && \
        apt-get install -y curl \
                           build-essential
    
    RUN apt-get install -y mariadb-client
    RUN apt-get install -y mariadb-server
    
    ENTRYPOINT service mysql start && mysql -uroot
    
    

    然后构建镜像:

    docker build -t my-mysql-image .
    

    最后你可以运行容器并登录到 mysql shell:

    docker run -ti --rm --name my-mysql-service my-mysql-image
    

    顺便说一句,dockerhub https://hub.docker.com/_/mariadb 上有官方 mariadb 镜像,您可以使用它来代替自定义构建。

    【讨论】:

      猜你喜欢
      • 2019-09-28
      • 2014-04-12
      • 2021-08-15
      • 2012-09-19
      • 2018-08-01
      • 2017-03-18
      • 2022-06-30
      • 1970-01-01
      • 2017-02-12
      相关资源
      最近更新 更多