Docker 容器中的数据库不断被删除

DB in Docker container keeps getting deleted

我是 docekr 的新手,我正在我的本地机器上设置一个 Codeigniter docker 图像 bitnami/codeigniter:3

一切正常,但 mysql 容器在我每次执行时都会丢失它的数据库和所有数据 sudo docker-撰写

这是docker-撰写文件

version: '3.3'
services:
 myapp:
  image: docker.io/bitnami/codeigniter:3
  container_name: app-backend
  ports:
   - '8000:8000'
 volumes:
   - '.:/app'
depends_on:
  - mariadb
mariadb:
 image: docker.io/bitnami/mariadb:10.3
 container_name: app-marriadb
 volumes:
   - app_dbdata:/var/lib/mysql
 environment:
   MYSQL_ROOT_PASSWORD: root
   MYSQL_DATABASE: app_db
 ports:
   - '3307:3306'
 environment:
   - ALLOW_EMPTY_PASSWORD=yes
volumes:
 app_dbdata:

我尝试了多种可能性,但不确定哪里出错了。我的 OS 是 Ubuntu 18.04

bitnami/mariadb image 在容器内使用不同的路径存储数据库。引用其 Docker 中心页面的“保留您的数据库”部分:

For persistence you should mount a directory at the /bitnami/mariadb path. If the mounted directory is empty, it will be initialized on the first run.

因此,在您的 Compose 设置中,将该路径指定为挂载目录:

version: '3.8'
services:
  mariadb:
    volumes:
      - app_dbdata:/bitnami/mariadb # <-- not /var/lib/mysql
volumes:
  app_dbdata: # unchanged