构建一个带有 30 GB 数据库的 Docker 容器

构建一个带有 30 GB 数据库的 Docker 容器

我有一个大问题:我确实有 30 GB 的数据需要填充到 mysql 数据库中。这里每个想要离线(和移动)使用这些数据的人都必须将其导入本地 mysql 数据库(由于不同的 mysql 版本、操作系统等)。

所以我决定提供一个 Docker 容器。

但是现在,我在构建容器时遇到了问题。

  1. 如果我尝试将大块数据和导入脚本复制到从 MySQL 容器派生的容器中,理论上是可行的 - 但会占用硬盘驱动器上的空间。首先,Docker 构建将 30GB 发送到 docker 守护程序,然后将数据再次复制到容器中。

  2. 如果我尝试启动mysqld容器内以从主机填充数据库,我意识到 Docker 在构建期间不会打开端口 3306。

那么,如何才能填充数据库而不至于到处复制数据呢?

例如,是否有可能从(正常)运行且已填充的容器中获取 Docker 映像?

答案1

也许你可以使用volumes

运行时,docker run您可以使用标志绑定目录-v。示例

-v $(pwd)/my-sql-data:/dir/in/container

我认为 Docker Hub 上的官方 docker MySQL 镜像中也提到了这一点,请检查一下

相关内容