Minecraft Docker容器拒绝连接

146次阅读
没有评论

问题描述

在使用Docker运行Minecraft服务器时遇到了连接被拒绝的问题。他使用了一个Dockerfile来构建镜像,并在运行容器时指定了端口映射,但仍无法连接到服务器。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户提供的问题描述和最佳回答,问题可能出在使用了--network host参数。这个参数在Linux版本的Docker守护进程中会阻止端口映射的工作。由于Docker for Windows和Docker Toolbox都使用某种虚拟化技术来运行Linux容器,我可以假设它们也会产生相同的效果。这意味着容器无法通过指定的端口进行访问。
为了解决这个问题,您可以尝试去掉--network host参数,并使用-p--publish参数来指定端口映射。以下是解决方案的步骤:
1. 打开命令行终端。
2. 停止并删除之前运行的容器(如果有):
bash
docker stop mcs
docker rm mcs

3. 运行以下命令来启动容器,并指定端口映射:
bash
docker run -d -p 25565:25565 --name mcs mcserver

这将启动一个名为mcs的容器,并将主机的25565端口映射到容器的25565端口。
4. 等待一段时间,直到容器完全启动。
5. 尝试连接到localhost:25565,看看是否能够成功连接到Minecraft服务器。

方案2

根据用户提供的第二个回答,Windows版本的Docker可能存在一些已知问题。您可以尝试使用-P--publish参数来替代-p参数。以下是解决方案的步骤:
1. 打开命令行终端。
2. 停止并删除之前运行的容器(如果有):
bash
docker stop mcs
docker rm mcs

3. 运行以下命令来启动容器,并指定端口映射:
bash
docker run -d -P --name mcs mcserver

这将启动一个名为mcs的容器,并自动分配一个主机端口来映射容器的25565端口。
4. 等待一段时间,直到容器完全启动。
5. 运行以下命令来查看分配的主机端口:
bash
docker port mcs

这将显示容器的端口映射信息,包括分配的主机端口。
6. 尝试连接到localhost:分配的主机端口,看看是否能够成功连接到Minecraft服务器。

请注意,如果您计划在Linux生产环境中部署该服务器,可能需要根据实际情况进行一些调整。例如,您可能需要配置防火墙规则或网络设置来允许外部机器访问服务器。

希望这些解决方案能帮助您解决连接被拒绝的问题。如果您有任何其他问题,请随时提问。

正文完