我有一个MariaDB容器来处理我的数据库。
这是我的问题,我执行了:
docker-compose exec mariadb mysql -u root
进入MariaDB容器并创建一个测试数据库,然后退出容器,并通过命令关闭它:
docker-compose down
接着,我通过命令重新启动了所有的容器
docker-compose up
回到 MariaDB 容器内,检查我添加的数据库是否持久化,但是我发现它并没有。我认为我已经通过 docker-compose 中的以下代码正确地参数化了 MariaDB 的卷:
- '/bitnami/mariadb/:/var/lib/mysql'
以下是我的完整docker-compose.yml文件:
version: '2'
services:
myapp:
image: 'bitnami/symfony:1'
ports:
- '8000:8000'
volumes:
- '.:/app'
environment:
- SYMFONY_PROJECT_NAME=backend
- MARIADB_HOST=mariadb
- MARIADB_PORT_NUMBER=3306
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
- MARIADB_DATABASE=test
container_name: symfony_container
depends_on:
- mariadb
mariadb:
image: 'bitnami/mariadb:10.3'
ports:
- '3306:3306'
volumes:
- '/bitnami/mariadb/:/var/lib/mysql'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_DATABASE=test
- MARIADB_PORT_NUMBER=3306
- MARIADB_ROOT_USER=root
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
container_name: mariadb
如果有任何关于IT技术的线索,请不吝赐教。
docker-compose up
, thendocker-compose exec mariadb bash
- Elias SoaresMYSQL_DATABASE
如果它不存在。如果那个bitnami镜像不允许类似的行为,可以像上面提到的那样exec
到已经运行的容器中,或者在容器启动时运行一个脚本来检查状态并根据需要创建和/或填充数据库。 - ldg