我试图通过docker托管一个minecraft服务器并访问文件



我正在尝试托管一个Minecraft服务器遵循这个教程,使用这个图像。我输入了他拉出来的命令,如下所示:

docker run -d -p 25565:25565 --name mc -e EULA-TRUE --restart always -v /home/docker/minecraft/ data:/data itzg/minecraftserver

但是我得到了错误

docker: invalid reference format.
See 'docker run --help'.

当我试图解决这个问题时,我在docker网站上找到了这个关于挂载和卷的文档。我认为这就是我想要的,但我不明白我如何使用它来创建一个可访问的文件夹到容器及其文件。该命令是否允许我访问服务器上的文件,或者我是否需要执行其他操作?

From docker doc:

当您使用绑定挂载时,主机上的文件或目录将被挂载装载到容器

这意味着,您可以将本地机器中的本地文件或目录挂载到docker容器文件系统中。这意味着-挂载的本地主机文件或目录中的所有文件和目录都将挂载到docker容器中,并且如果文件名相同(目录相同),将覆盖docker容器文件。

重要docker容器也会将它的文件/目录挂载到你的本地文件系统。然而,与相反方向(local ->Docker容器),Docker容器不会覆盖本地主机文件系统中的任何文件或目录。

如果你想避免覆盖一个文件从localhost到docker容器文件系统,你可以使用最基本的卷:匿名卷。

从主注释看来,您实际上想运行以下代码:

docker run -d -p 25565:25565 --name mc -e EULA=TRUE --restart=always -v /home/docker/minecraft/_data:/data itzg/minecraft-server

我不熟悉minecraft服务器,但是你应该注意在这个命令中使用你的本地目录:/home/docker/minecraft/_data。我认为你确保它有适当的内容(因为它将被挂载到你的docker容器文件系统到/data)。或者,这可以是你本地的一个空文件夹,docker容器会在那里生成一些数据,这样你以后就可以查看这些数据了。

我认为你的路径有一个错误,在data目录之前似乎有一个空白的空间:'/home/docker/minecraft/data:/data

docker run -d -p 25565:25565 --name mc -e EULA-TRUE --restart always -v /home/docker/minecraft/data:/data itzg/minecraftserver

在Docker中,卷是存储数据的一种方式。每次容器关闭时,未保存到卷中的数据将丢失。

可以通过两种方式设置卷:

<<ul>
  • Docker-managed卷/gh>
  • 已挂载的路径卷
  • 在您的情况下,您声明了-v /home/docker/minecraft/data:/data,这意味着链接我的目录在/home/docker/minecraft/data与docker容器目录/data。因此,所有的数据将被保存,你将能够添加,修改或删除文件。

    相关内容

    最新更新