Docker mysql:错误2002(HY 000):无法通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock'(2)在Mac上

brccelvz  于 2022-11-03  发布在  Docker
关注(0)|答案(1)|浏览(247)

我编辑了这个问题,指定它是一个使用ts ORM编写的节点应用程序,我正在尝试挂载映像,将其放在Docker集线器中。
我试图连接到mysql创建一个使用容器的数据库,我不能到mysql,我已经建立我的应用程序使用这个Dockerfile:

FROM      ubuntu:20.04

RUN       apt-get update 
RUN       apt-get install -y mariadb-server
EXPOSE    3306

FROM      node

WORKDIR   /node/app

COPY      package*.json package-lock*.json 
COPY      . .
RUN       npm install 
RUN       npm install -g typescript

然后我在Docker桌面上运行它,然后进入CLI,在运行时收到以下消息:

mysql -u root -p

或者当我奔跑时

mysql -h 127.0.0.1 -P 3306 -u root  -p

Enter password: 
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)

这就是我跑步时得到的
第一个

68bkxrlz

68bkxrlz1#

所以我发现了问题,我把官方的mariadb图片从dockerhub换成了docker-compose.yml,希望这能对大家有所帮助。

version: '3'
networks:
    app-tier:
        driver: bridge

services:
    db:
        image: mariadb
        restart: always
        expose:
            - "3307"
        ports:
            - "3307:3307"
        networks:
            - app-tier
        environment:
            MYSQL_ROOT_PASSWORD: password
            MYSQL_DATABASE: testdocker
            MYSQL_USER: test
            MYSQL_PASSWORD: test   
        volumes:
            - ./init.sql:/docker-entrypoint-initdb.d/init.sql
    web:
        build: 
            context: .
            dockerfile: Dockerfile
        command: bash -c 'until !</dev/tcp/db/3307; do sleep 1; done; npm run build'   
        container_name: nodeapp-docker
        ports:
           - "3000:3000"
        depends_on:
           - mariadb
        networks:
            - app-tier

和我的Dockerfile:

FROM      node:17-alpine3.12

LABEL     Tarek ZEMMOURI

RUN       apk add --no-cache bash
WORKDIR   /app       
COPY      package*.json package-lock*.json
COPY      . .

RUN       npm install 

EXPOSE    3000

CMD ["npm", "build"]

相关问题