Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker-传输数据库及其内容的图像_Docker_Clickhouse - Fatal编程技术网

Docker-传输数据库及其内容的图像

Docker-传输数据库及其内容的图像,docker,clickhouse,Docker,Clickhouse,我想拉一张yandex/clickhouse服务器的图像 然后对数据库做一些事情,比如创建表,用数据填充数据库等等 然后我想将图像及其所有内容传输到服务器 我应该怎么做?移动数据库的正确方法是创建备份或转储,然后将其重新加载到新数据库中。否则,如果愿意,您可以尝试从旧容器构建映像移动数据库的正确方法是创建备份或转储,然后将其重新加载到新数据库中。否则,如果您愿意,您可以尝试从旧容器构建图像我的第一个想法是使用docker commit container创建图像快照,但这将不是一个干净的解决方案

我想拉一张yandex/clickhouse服务器的图像

然后对数据库做一些事情,比如创建表,用数据填充数据库等等

然后我想将图像及其所有内容传输到服务器


我应该怎么做?

移动数据库的正确方法是创建备份或转储,然后将其重新加载到新数据库中。否则,如果愿意,您可以尝试从旧容器构建映像

移动数据库的正确方法是创建备份或转储,然后将其重新加载到新数据库中。否则,如果您愿意,您可以尝试从旧容器构建图像

我的第一个想法是使用
docker commit container
创建图像快照,但这将不是一个干净的解决方案

正确的方法是创建一些init文件并扩展基本映像。 在docker页面上

如何扩展此图像 如果要在从此映像派生的映像中执行其他初始化,请在/docker entrypoint initdb.d下添加一个或多个*.sql、*.sql.gz或*.sh脚本。入口点调用initdb后,它将运行任何*.sql文件,运行任何可执行的*.sh脚本,并在该目录中找到任何不可执行的*.sh脚本,以便在启动服务之前进行进一步初始化

例如,要添加其他用户和数据库,请添加以下内容 至/docker-entrypoint-initdb.d/init-db.sh:


我的第一个想法是使用
docker提交容器创建图像快照
,但这不是一个干净的解决方案

正确的方法是创建一些init文件并扩展基本映像。 在docker页面上

如何扩展此图像 如果要在从此映像派生的映像中执行其他初始化,请在/docker entrypoint initdb.d下添加一个或多个*.sql、*.sql.gz或*.sh脚本。入口点调用initdb后,它将运行任何*.sql文件,运行任何可执行的*.sh脚本,并在该目录中找到任何不可执行的*.sh脚本,以便在启动服务之前进行进一步初始化

例如,要添加其他用户和数据库,请添加以下内容 至/docker-entrypoint-initdb.d/init-db.sh:


在图像本身中存储数据?你不想那样做。1) 映像大小将增加,2)每次容器重新启动都将从映像中加载相同的快照,完全忘记自上次启动以来发生的更新。但也许这就是你想要的耸耸肩:您绝对不应该在docker图像中存储数据库的数据。从寄存器中提取docker映像,启动它,然后用迁移(填充表结构)填充它。是否将数据存储在映像本身中?你不想那样做。1) 映像大小将增加,2)每次容器重新启动都将从映像中加载相同的快照,完全忘记自上次启动以来发生的更新。但也许这就是你想要的耸耸肩:您绝对不应该在docker图像中存储数据库的数据。从寄存器中提取docker映像,启动它,然后用迁移(填充表结构)填充它。