Docker Compose中的MariaDB不响应内部shell命令

xdyibdwo  于 2023-03-29  发布在  Docker
关注(0)|答案(1)|浏览(95)

我在用

CentOS Linux release 8.5.2111
Docker version 23.0.1
Docker Compose version 2.3.4

我的docker compose是坚持像nginx,was(gunicorn和django),mariadb这样的图像。

我的docker-compose.yml

version: "3.9"

services:

  web:
    image: python:3.9
    hostname: web
    container_name: web
    restart: always
    stdin_open: true
    tty: true
    depends_on:
      - mariadb
    build:
      context: .
      dockerfile: Dockerfile_web
    volumes:
      - ./facility_iot:/service
      - ./tmp:/tmp
    # command: sh -c "cd /service && python manage.py runserver 0.0.0.0:8000"
    command: sh -c "cd /service && gunicorn --worker-tmp-dir /tmp --bind 0.0.0.0:8000 --timeout=60 config.wsgi:application"
    # command: sh -c "cd /service && python manage.py makemigrations && python manage.py migrate"

  mariadb:
    image: mariadb
    hostname: mariadb
    container_name: mariadb
    cpu_count: 4
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: [PASSWORD]
      TZ: Asia/Seoul
    volumes:
      - ./mariadb/data:/var/lib/mysql
      - ./mariadb/init.sql:/init.sql
    ports:
      - "3306:3306"
    command: --init-file /init.sql

  nginx:
    image: nginx
    hostname: nginx
    container_name: nginx
    cpu_count: 4
    restart: always
    depends_on:
      - web
      - grafana
    volumes:
      - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      - ./nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/static:/static
    ports:
      - "8000:8000"

  grafana:
    image: grafana/grafana
    hostname: grafana
    container_name: grafana
    cpu_count: 1
    restart: always
    depends_on:
      - mariadb
    volumes:
      - ./grafana/conf:/usr/share/grafana/conf
      # - ./grafana/data:/var/lib/grafana

我的问题:

我想在使用构建后进入MariaDB容器

docker compose up --build -d

它可以正常工作

docker exec -it mariadb /bin/bash

但是我试着用它的时候它没有React

docker compose exec mariadb bash

不仅仅是mariadb,而是一切。
我可以进入容器内部,但如果我想做一些命令,它就会停止,没有响应,如下所示。

[root@DST iot-project]# docker compose mariadb bash
root@mariadb:/# ls
[root@DST iot-project]# docker compose mariadb bash
root@mariadb:/# mysql -u root -p
[root@DST iot-project]# docker compose mariadb bash
root@mariadb:/# mysql -u root -p
^C^C^CERRO[0006] got 3 SIGTERM/SIGINTs, forcing shutdown

我真的无能为力..

我的问题:

1.我该怎么补救?
1.我只是好奇为什么它是不同的。(docker exec VS docker compose exec)
我只是希望'docker exec'和'docker compose exec'工作相同。

roejwanj

roejwanj1#

好了,现在我发现Docker compose V2,V2.3.4有一个问题。
Check this issue.
我已经重新安装了几次docker,但总是有docker compose v2.3.4。
也许,在我的操作系统中,可以安装的最新版本是2. 3. 4..
所以,我把它移到了2.3.3。然后这个问题终于解决了。
我需要使用2.3.3,直到新版本发布...

相关问题