下面是我的docker-compose.yml
代码
mariadb:
image: mariadb:10.8.2
restart: always
environment:
MARIADB_ROOT_PASSWORD: test
MARIADB_DATABASE: mydb
ports:
- "3306:3306"
container_name: mariadb
networks:
- my-network
然后使用以下命令启动Docker容器
docker stop mariadb
docker rm mariadb
docker-compose up -d --remove-orphans mariadb
sleep 15 # wait until database is fully started
docker exec mariadb mysql -u root -ptest -e "CREATE DATABASE product;"
启动Docker容器后,即命令docker-compose up -d --remove-orphans mariadb
,下一个命令是创建一个名为product
的数据库。但是,问题是存在以下错误ERROR 1007 (HY000) at line 1: Can't create database 'dictionary'; database exists
**问题:**为什么一开始就删除了容器和镜像,但之前创建的数据库仍然存在?如何在没有现有数据库的情况下第二次创建容器?
2条答案
按热度按时间tjvv9vkg1#
在dockerfiles中有使用VOLUME创建的匿名卷。
你把docker compose和docker命令混在一起很奇怪。使用
docker compose down -v
删除卷和匿名卷。此外,现在考虑使用
docker compose
v2代替旧的docker-compose
。8wigbo562#
你没有发布你的compose文件,但我猜你把MariaDB数据文件夹Map到了外部卷,所以再次运行compose,你会得到旧的DB数据。