如何在Docker中使用MariaDB?
How to use MariaDB in Docker?
我正在尝试设置一个 MariaDB 容器以在 Docker 中使用,但我似乎做错了什么。我首先下载,然后 运行 使用此命令将其安装:
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 机器上执行此操作,如果有区别的话。
我尝试了你的命令并得到了以下输出:
$> 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数据卷,或者先初始化mariadb。
我正在尝试设置一个 MariaDB 容器以在 Docker 中使用,但我似乎做错了什么。我首先下载,然后 运行 使用此命令将其安装:
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 机器上执行此操作,如果有区别的话。
我尝试了你的命令并得到了以下输出:
$> 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数据卷,或者先初始化mariadb。