organised and linted all posts
imported workspace into obsidian linted files organized yaml frontmatter unified yaml value formats removed yaml front matter no longer needed
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
---
|
||||
title: Minecraft Server on Docker ⛏ 🐳
|
||||
description: Ever wanted to build a Minecraft server in docker !! Start here
|
||||
tags:
|
||||
- docker
|
||||
- games
|
||||
author: ahmza
|
||||
date: 2022-05-24
|
||||
lastmod: 2024-07-20
|
||||
author: "ahmza"
|
||||
draft: false
|
||||
weight:
|
||||
|
||||
tags: ["games", "docker"]
|
||||
description: "Ever wanted to build a Minecraft server in docker !! Start here"
|
||||
featureimage: feature.webp
|
||||
lastmod: 2024-07-20
|
||||
---
|
||||
|
||||
|
||||
## Introduction
|
||||
|
||||
Minecraft is a great game that becomes even more enjoyable when played with
|
||||
friends. One of the best ways to do this is by setting up a dedicated server.
|
||||
This guide will help you do just that!
|
||||
@@ -20,30 +22,35 @@ Setting up and running a Minecraft server does not require a lot of resources,
|
||||
but based on my experience, allocating more resources significantly enhances
|
||||
performance, especially when you start to add mods and increase player count.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker
|
||||
- Docker Compose
|
||||
|
||||
For more information about my Docker setup, see [Pi Cluster](/posts/pi-docker-swarm/)
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
_Requirements Gathered from [here](https://minecraft.fandom.com/wiki/Server/Requirements/Dedicated#Unix_.28Linux.2C_BSD.2C_macOS.29)_
|
||||
|
||||
### Minimum (1-5 Players)
|
||||
|
||||
```
|
||||
- Intel Pentium 4 or AMD Athlon based CPU
|
||||
- 512 MB RAM
|
||||
- 2 GB Storage space
|
||||
```
|
||||
|
||||
### Recommended (10-15 Players)
|
||||
|
||||
```
|
||||
- Intel Core or AMD K8 based CPU
|
||||
- 3 GB RAM
|
||||
- 16 GB Storage Space
|
||||
```
|
||||
|
||||
### Optimal (20+ Players)
|
||||
|
||||
```
|
||||
- Intel i5/i7 or AMD Ryzen 5/7 Based CPU
|
||||
- 6 GB RAM
|
||||
@@ -63,6 +70,7 @@ a few players, there is no need to go higher than 3-4 GB.
|
||||
Let's get started on building the Minecraft server.
|
||||
|
||||
1. **Create a directory for the Minecraft server files:**
|
||||
|
||||
```bash
|
||||
# Make the folder
|
||||
mkdir minecraft-server
|
||||
@@ -72,6 +80,7 @@ cd minecraft-server
|
||||
|
||||
2. **Create an environment file for the Docker Container:**
|
||||
- The `.env` file allows us to specify variables used in the build process.
|
||||
|
||||
```bash
|
||||
# Create a .env file
|
||||
touch .env
|
||||
@@ -82,7 +91,9 @@ CONTAINER_NAME=minecraft-server
|
||||
SERVER_MEM=4096 # Change this to your desired value (in MB)
|
||||
SERVER_JAR=<downloaded-server-file>.jar # Minecraft server jar file. Change this later
|
||||
```
|
||||
|
||||
3. **Create the `docker-compose.yml` file:**
|
||||
|
||||
```bash
|
||||
# Create the file
|
||||
touch docker-compose.yml
|
||||
@@ -91,12 +102,11 @@ vim docker-compose.yml
|
||||
```
|
||||
|
||||
- `docker-compose.yml` specifies the configuration of our Minecraft server:
|
||||
- Build a Docker image using the current context and pass some arguments.
|
||||
- Attach the volume .server-data where Minecraft's files will be stored.
|
||||
- Open network ports to access the Docker container.
|
||||
- Name the Docker container.
|
||||
- Ensure the container always restarts unless explicitly stopped.
|
||||
|
||||
- Build a Docker image using the current context and pass some arguments.
|
||||
- Attach the volume .server-data where Minecraft's files will be stored.
|
||||
- Open network ports to access the Docker container.
|
||||
- Name the Docker container.
|
||||
- Ensure the container always restarts unless explicitly stopped.
|
||||
|
||||
```yaml
|
||||
services:
|
||||
@@ -131,7 +141,7 @@ vim Dockerfile
|
||||
```
|
||||
|
||||
- Use the [eclipse-temurin:21](https://hub.docker.com/_/eclipse-temurin) image to provide the Java JRE
|
||||
- Use the required Java version for the version of Minecraft you are running.
|
||||
- Use the required Java version for the version of Minecraft you are running.
|
||||
- Collect the arguments from the .env file.
|
||||
- Set the environment variables.
|
||||
- Set the working directory to /server, on our local system is .server-data.
|
||||
@@ -153,7 +163,7 @@ CMD echo "Minecraft Server is starting\n" && java -Xms128M -Xmx${SERVER_MEM}M -j
|
||||
|
||||
## Setup the Server Files
|
||||
|
||||
We’re almost there, just a few steps to go.
|
||||
We're almost there, just a few steps to go.
|
||||
|
||||
When you try to start the container, you might encounter the following error:
|
||||
|
||||
@@ -175,13 +185,14 @@ cd .server-data
|
||||
2. **Download a Minecraft server jar file:**
|
||||
|
||||
- [Vanilla Minecraft Server](https://www.minecraft.net/en-us/download/server)
|
||||
- Right-click the green link that says minecraft_server.<version>.jar and copy the link address.
|
||||
- Download with: curl -o server.jar <link you copied here>
|
||||
- Right-click the green link that says minecraft_server.<version>.jar and copy the link address.
|
||||
- Download with: curl -o server.jar <link you copied here>
|
||||
- [Fabric Mod loader server](https://fabricmc.net/use/server/)
|
||||
- Select the Minecraft version, Fabric Loader Version, and the Installer Version of your choice. I tend to go with the latest.
|
||||
- Download with: Copy the curl command under CLI download
|
||||
- Select the Minecraft version, Fabric Loader Version, and the Installer Version of your choice. I tend to go with the latest.
|
||||
- Download with: Copy the curl command under CLI download
|
||||
|
||||
3. **Go back to the root `minecraft-server` directory:**
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
@@ -198,10 +209,13 @@ SERVER_JAR=<downloaded-server-file>.jar # Change this to the name of the .jar yo
|
||||
```
|
||||
|
||||
5. **Run the container to generate necessary files like `eula.txt`:**
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
```
|
||||
|
||||
You will see something like this:
|
||||
|
||||
```bash
|
||||
|
||||
minecraft-server | Starting net.minecraft.server.Main
|
||||
@@ -221,9 +235,9 @@ eula=true
|
||||
|
||||
7. **Make any additional changes you want:**
|
||||
- Notable files:
|
||||
- server.properties - Configure server name, game mode, world type, etc.
|
||||
- ops.json - Server operators (can be set in-game).
|
||||
- whitelist.json - Players allowed to join the server (can be set in-game).
|
||||
- server.properties - Configure server name, game mode, world type, etc.
|
||||
- ops.json - Server operators (can be set in-game).
|
||||
- whitelist.json - Players allowed to join the server (can be set in-game).
|
||||
|
||||
## Run the Server
|
||||
|
||||
|
||||
Reference in New Issue
Block a user