gpt4 book ai didi

docker - 提交mysql docker镜像未嵌入新数据库

转载 作者:行者123 更新时间:2023-12-02 18:57:00 24 4
gpt4 key购买 nike

如果我在mysql容器中创建数据库并将其提交为新镜像。新镜像不会访问数据库。这是场景

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
docker exec -it some-mysql bash
root@e756b3aa719b:/# mysql -uroot -pmy-secret-pw

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database michael;

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| michael |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)

mysql> exit
Bye
root@e756b3aa719b:/# exit
exit

然后我将此容器提交为图像
docker commit 486932c6d7e7 bdd/myproj:1.0

如果我从该镜像创建容器,则数据库不在此处
docker run --name newbdd -e  MYSQL_ROOT_PASSWORD=my-secret-pw -d mybdd/myproj:1.0
docker exec -it newbdd bash
root@004f86506ebf:/# mysql -uroot -pmy-secret-pw
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)

真正奇怪的是,mysql客户端保留了命令“create database michael”的历史记录,但是服务器没有保留数据库michael。

我不明白为什么。

最佳答案

按预期工作。容器内的数据通常不是最佳实践。 mysql基本镜像将数据目录指定为持久不存在的volume

关于docker - 提交mysql docker镜像未嵌入新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com