如何在Docker中使用MariaDB?

时间:2017-04-15 05:11:39

标签: docker mariadb

我正在尝试设置一个在Docker中使用的MariaDB容器,但我似乎做错了什么。我首先下载然后使用此命令运行它:

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

下载它运行容器。然后我尝试在其上运行此SQL命令:

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

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

1 个答案:

答案 0 :(得分:2)

我尝试使用您的命令并获得以下输出:

$> 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,mariadb正在侦听端口3306,你可以在Dockerfile of Mariadb中找到唯一暴露的端口是3306.我猜你想要的是-p 3306:3306
  • -v c:/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数据卷,或者首先安装init mariadb。