如何在Docker中使用MariaDB?

我试图设置一个MariaDB容器在Docker中使用,但我似乎做错了什么。 我开始下载,然后用这个命令运行它:

docker run -p 127.0.0.1:8002:80 --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -vc:/mysql -d mariadb:latest 

它下载一个运行容器。 然后我尝试运行这个SQL命令:

 docker exec -it some-mariadb mysql -p -e 'select * from my_table' my_db 

它给了我MySql的使用信息…我不明白我在做什么错了? 我在Windows机器上这样做,如果这有所作为。

我试着用你的命令,得到以下输出:

 $> docker exec -it some-mariadb mysql -p -e 'select * from my_table' my_db Enter password: ERROR 1049 (42000): Unknown database 'my_db' 

其实你的mariadb正在运行,输出错误信息是有道理的。 你的docker run命令有两个错误:

  • -p 127.0.0.1:8002:80正在侦听端口3306 ,你可以在Mariadb的Dockerfile中发现唯一暴露的端口是3306.我想你想要的是-p 3306:3306
  • -vc:/mysql ,你要在容器目录/c:/mysql下添加额外的卷,但是mariadb的数据卷是/var/lib/mysql 。 如果你想在你的主机上使用mysql数据,你需要-v <your_host_directory>:/var/lib/mysql

如果你进入容器内的some-mariadb并尝试mysql cleint,你会看到没有数据库叫做my_db

 $> docker exec -it some-mariadb bash root@63154453ff14:/# mysql -u root -pmy-secret-pw MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) 

所以你需要安装正确的mysql数据卷,或者首先启动mariadb。