redis docker - 创建一个包含数据的容器

Guy*_*sky 0 redis docker docker-compose

我想运行一个包含初始数据的 redis 容器。在图像的文档中,我可以使用卷挂载到/data. 我的问题是:redis 是否能够从中读取数据并加载它?如果是这样,我挂载的目录中应该有什么?我(非常天真)的尝试是放置一个名为“someFile”的文件,希望 redis 知道将它与键“someFile”和文件内容保存为数据。显然它不起作用。

任何帮助,将不胜感激。

Ale*_* F. 5

根据您的初始数据集有多大以及如果您的初始数据没有太大变化,让干净的 docker 容器在启动时*.redis使用redis-cli( link )从文件加载它可能会更容易。

创建您的种子命令文件 ( my-data.redis):

SET key1 val1
SET key2 val2
...
...
Run Code Online (Sandbox Code Playgroud)

创建一个redis启动shell脚本(my-redis.sh):

SET key1 val1
SET key2 val2
...
...
Run Code Online (Sandbox Code Playgroud)

用你的 shell 脚本作为 CMD 创建一个自定义的 redis docker 镜像,像这样(更好的解决方案是破解入口点,但谁有时间呢?):

FROM redis:latest
COPY my-data.redis /my-dir/
COPY start-redis.sh /my-dir/
CMD ["sh", "/my-dir/my-redis.sh"]
Run Code Online (Sandbox Code Playgroud)

完毕。不需要外部卷或构建器容器。构建并运行:

docker build -t my-redis:latest .
docker run -p 6379:6379 my-redis:latest
Run Code Online (Sandbox Code Playgroud)