我的情况很奇怪。当我使用一个目录启动mariaDB容器时,它卡在了“初始化数据库”中:
$ docker run --name some-mariadb -v /mnt/data/msb/newsystem/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 mariadb:10.3
Initializing database
它永远存在,不会前进,也不会死。请注意,/ mnt / data挂载了/ dev / sdb1,尽管它是另一个硬盘,但它位于同一台计算机中,并且不是可移动媒体或其他任何东西。我不知道是否已连接,对我来说这没有意义。
另一方面,如果我在另一个目录中启动它,那么一切正常:
$ docker run --name some-mariadb -v /home/msb/work/tmpdb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 mariadb:10.3
Initializing database
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
....
运行速度很快,只需几秒钟。据我检查,两个目录具有相同的所有者和权限。我的问题是:为什么它挂在第一种情况下?我该如何调试?
虽然不是mysql的新手,但是我对docker和mariaDB还是新手。 通过执行以下步骤,我可以使用所需的目录使其工作:
由于数据库已经初始化,所以一切正常,它就好像不是新数据库一样启动数据库。但是我对为什么不能立即使用所需的目录无法正常工作感到非常好奇,我相信了解这一点可以帮助我了解docker的工作原理。