我在用
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'工作相同。
1条答案
按热度按时间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,直到新版本发布...