docker - Minecraft Docker镜像:游戏存储持久性

标签 docker

我正在尝试使用this Vanilla Minecraft docker image为 friend 运行Minecraft服务器,但似乎无法使它的数据在容器本身的生命周期内存活。

我在Ubuntu主机上运行,​​并且在该主机上创建了/opt/minecraft,我想在该容器中保留任何外部持久化数据。

为了测试我的方法,我将:

  • 启动容器(以下是我尝试的每种方法所提供的命令)
  • 加入服务器
  • 在自己周围挖一个圈,以表明我去过那里
  • 与服务器断开连接
  • 停止容器docker stop generated_name
  • 使用与上述
  • 相同的命令再次启动容器
  • 再次加入服务器
  • 是我所挖的圈子还在吗/世界已经改变了吗?

  • 我尚未找到一种不会丢失数据的方法。这是我尝试过的:

    方法一:合而为一

    我尝试只将/opt/minecraft作为/minecraft装入容器中:
    docker run -d -v /opt/minecraft:/minecraft -p 25565:25565 webhippie/minecraft-vanilla
    

    方法2:单个卷

    我在Dockerfile中注意到有3 volumes listed:
    VOLUME ["/minecraft/merge", "/minecraft/world", "/minecraft/logs"]
    

    因此,在销毁并重新创建一个空的/opt/minecraft并创建了三个要装入的文件夹之后,我尝试使用以下方法:
    docker run -d -v /opt/minecraft/world:/minecraft/world -v /opt/minecraft/merge:/minecraft/merge -v /opt/minecraft/logs:/minecraft/logs -p 25565:25565 webhippie/minecraft-vanilla
    

    在方法1和方法2中,我都可以看到已在作为卷装入的文件夹中创建了一些文件(因此,我认为这不是权限问题),但这似乎不足以保留我的世界重新启动容器后从头开始创建数据库。我想念什么?

    我也是Minecraft的新手。也许我想念的游戏有些细微差别,是吗?

    最佳答案

    您的第二种方法应该完全可以维持世界,至少这就是我这样做的方式。

    关于docker - Minecraft Docker镜像:游戏存储持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442761/

    相关文章:

    docker - 如何在不执行指定命令的情况下启动Docker容器

    python - Django容器-提供静态文件

    docker - Docker:需要在symfony项目中保留文件夹

    docker 登录到 nexus 连接被拒绝

    python - 代理下dockerfile里面的pip

    docker - Vagrant 的Docker Provisioner在启动时不会启动容器

    mongodb - 使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?

    docker - 从 docker 容器内的主机运行可执行文件

    Docker Compose - 在多个容器之间共享命名卷

    docker - 使用 docker 构建时 Azure DevOps 私有(private) nuget 存储库未经授权