我正在尝试通过 docker 托管我的世界服务器并访问文件
Im trying to host a minecraft server via docker and access the files
我正在尝试在 this tutorial that uses this image 之后托管一个 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 网站上找到了 this 有关安装和卷的文档。我认为这就是我想要的,但我不明白如何使用它来为容器及其文件创建一个可访问的文件夹。该命令允许我访问服务器上的文件还是我需要做其他事情?
When you use a bind mount, a file or directory on the host machine is
mounted into a container
这意味着,您可以将本地计算机中的本地文件或目录挂载到 docker 容器文件系统中。这意味着 - 挂载的本地主机文件或目录中的所有文件和目录都将挂载到 docker 容器,如果文件名相同(目录相同),将覆盖 docker 容器文件。
重要:docker 容器也会将其文件/目录挂载到本地文件系统。但是,与相反方向(本地 -> docker 容器)相反,docker 容器不会覆盖本地主机文件系统中的任何文件或目录。
另请注意,如果您想避免将文件从本地主机覆盖到 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
目录之前似乎有一个空白 space : `/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,卷是一种存储数据的方式。每次容器关闭时,未保存到卷中的数据都会丢失。
可以通过两种方式设置卷:
- Docker-托管卷
- 已安装的路径卷
在你的例子中,你声明了 -v /home/docker/minecraft/data:/data
,这意味着 link 我在 /home/docker/minecraft/data
的目录和 docker 容器目录 /data
。所以那里的所有数据都将保留,您将能够添加、修改或删除文件。
我正在尝试在 this tutorial that uses this image 之后托管一个 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 网站上找到了 this 有关安装和卷的文档。我认为这就是我想要的,但我不明白如何使用它来为容器及其文件创建一个可访问的文件夹。该命令允许我访问服务器上的文件还是我需要做其他事情?
When you use a bind mount, a file or directory on the host machine is mounted into a container
这意味着,您可以将本地计算机中的本地文件或目录挂载到 docker 容器文件系统中。这意味着 - 挂载的本地主机文件或目录中的所有文件和目录都将挂载到 docker 容器,如果文件名相同(目录相同),将覆盖 docker 容器文件。
重要:docker 容器也会将其文件/目录挂载到本地文件系统。但是,与相反方向(本地 -> docker 容器)相反,docker 容器不会覆盖本地主机文件系统中的任何文件或目录。
另请注意,如果您想避免将文件从本地主机覆盖到 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
目录之前似乎有一个空白 space : `/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,卷是一种存储数据的方式。每次容器关闭时,未保存到卷中的数据都会丢失。
可以通过两种方式设置卷:
- Docker-托管卷
- 已安装的路径卷
在你的例子中,你声明了 -v /home/docker/minecraft/data:/data
,这意味着 link 我在 /home/docker/minecraft/data
的目录和 docker 容器目录 /data
。所以那里的所有数据都将保留,您将能够添加、修改或删除文件。