我在使用redis数据库中的数据创建docker redis容器的映像时遇到问题。目前,我正在这样做:
docker pull redis
docker run --name my-redis -p 6379:6379 -d redis
redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> exit
docker stop my-redis
docker commit my-redis redis_with_data
docker run --name my-redis2 -p 6379:6379 -d redis_with_data
redis-cli
127.0.0.1:6379> keys *
(empty list or set)
Run Code Online (Sandbox Code Playgroud)
我显然不明白这里的一些基本知识。docker commit不会从现有容器创建新映像吗?
好吧,我一直在做一些挖掘工作。hub.docker上的默认redis映像使用数据量,然后将其安装在容器中的/ data处。为了在容器之间共享此卷,您必须使用以下参数启动一个新容器:
docker run -d --volumes-from <name-of-container-you-want-the-data-from> --name <new-container-name> -p 6379:6379 redis
Run Code Online (Sandbox Code Playgroud)
请注意,参数的顺序很重要,否则docker run将静默失败。
docker volume ls
Run Code Online (Sandbox Code Playgroud)
会告诉您docker在您的计算机上已经创建了哪些数据卷。我还没有找到一种方法来给这些卷起一个琐碎的名字,而不是一个很长的随机字符串。
我还没有找到挂载数据卷的方法,而只是使用--volumes-from命令。
好的。我现在可以使用它了,但是很笨拙。
用
docker volume ls
docker volume inspect <id of docker volume>
Run Code Online (Sandbox Code Playgroud)
您可以在本地文件系统上找到docker卷的路径。然后,您可以将其安装在新容器中,如下所示:
docker run -d -v /var/lib/docker/volumes/<some incredibly long string>/_data:/data --name my-redis2 -p 6379:6379 redis
Run Code Online (Sandbox Code Playgroud)
显然,这不是您要执行此操作的方式。我继续挖掘。
我将到目前为止发现的所有内容都放在博客文章中:我在medium.com上的博客文章
也许对某人有用
Fre*_*nus 11
泊坞窗中的数据不是永久性的,当您重新启动容器时,数据将消失。为避免这种情况,您必须与容器共享主机上的映射。容器重新启动时,它将从主机上的映射中获取数据。
您可以在Docker文档中了解更多有关它的信息:https : //docs.docker.com/engine/tutorials/dockervolumes/#data-volumes
从redis容器文档中:
运行redis-server
docker run -d --name redis -p 6379:6379 dockerfile/redis
Run Code Online (Sandbox Code Playgroud)
使用永久数据目录运行redis-server。(创建dump.rdb)
docker run -d -p 6379:6379 -v <data-dir>:/data --name redis dockerfile/redis
Run Code Online (Sandbox Code Playgroud)
使用永久数据目录和密码运行redis-server。
docker run -d -p 6379:6379 -v <data-dir>:/data --name redis dockerfile/redis redis-server /etc/redis/redis.conf --requirepass <password>
Run Code Online (Sandbox Code Playgroud)
来源:https : //github.com/dockerfile/redis
| 归档时间: |
|
| 查看次数: |
9987 次 |
| 最近记录: |