Docker Minecraft PaperMC server for AMD64 and ARM64 platforms. Works on Synology, Raspberry Pi or any other systems that support docker.
Always up-to-date with the latest PaperMC version.
docker run --name mcserver --memory=4g -v /home/joe/mcserver:/data:rw -p 25565:25565 -i marctv/minecraft-papermc-server:latest
The server will generate all data including the world and config files in /home/joe/mcserver
. Change that to an
existing folder.
docker run -d \
--name mcserver \
--restart=unless-stopped \
--memory=1g \
-p 25565:25565/tcp \
-p 25565:25565/udp \
-v /home/docker/mcserver:/data:rw \
marctv/minecraft-papermc-server:latest
services:
minecraft:
image: marctv/minecraft-papermc-server:latest
restart: always
container_name: "mcserver"
environment:
PAPERMC_FLAGS: ""
deploy:
resources:
limits:
memory: 1G
volumes:
- minecraftserver:/data
ports:
- "25565:25565"
# The following allow `docker attach minecraft` to work
stdin_open: true
tty: true
volumes:
minecraftserver:
- Re-download the image from the docker repository.
- Stop the container.
- Clear the container.
- Start the container.
docker pull marctv/minecraft-papermc-server:latest
docker stop mcserver
Or just use https://containrrr.dev/watchtower/
You can get the desired UID/GID (xxx) with the ID command (id username
) then add the following to your docker run
command:
-e PUID=9001
-e PGID=9001
Note
the permissions are set automatically.
You can also run the container rootless
. Just use the native user argument with your desired UID/GID:
--user=9001:9001
Important
replace the IDs with your own.
Caution
make sure the folder you mount has the correct permissions.
If you have a big custom minecraft install (e.g. multiple plugins which generate files), changing ownership can take up a tremendous amount of time. You can skip this, by making sure that your files have the necessary permissions for the UID/GID that you passed using the environment variables above and then add the following variable:
-e SKIP_PERM_CHECK=true
If you prefer to use docker compose
, use the following commands:
Start the server:
docker compose up
Stop the server:
docker compose stop
Issue server commands after attaching to the container:
docker attach mcserver
# then you can type things like "list"
list
# which will show the current players online or
help
# to see all the commands available
Additionally, a Makefile
is provided to easily start, stop, and attach to the container.
make start # equivalent to `docker compose up -d --build`
make stop # equivalent to `docker compose stop --rmi all --remove-orphans`
make attach # equivalent to `docker attach mcserver`
make help # prints a help message
MEMORYSIZE = 1G
Not more than 70% of your RAM for your container. This is important. Because this is the RAM, your Minecraft Server will use within the container WITHOUT the operating system.
But don't use this unless you really need this. Use runtime memory limits.
TZ = Europe/Berlin
Sets the timezone for the container. A list of valid values can be found on Wikipedia: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
PAPERMC_FLAGS = --nojline
Optional: Sets the command-line flags for PaperMC. Remove --nojline
if you want to enable color and tab-completion for
the server console.
JAVAFLAGS
Optional: Overrides the optimized java parameter configuration with your own. You can set your own Xms and Xmx values this way.
Tutorial (german) https://marc.tv/anleitung-stabiler-minecraft-server-synology-nas/
You can install this docker container by using my dedicated installer: https://github.com/mtoensing/RaspberryPiMinecraftDocker Or just follow these steps:
- Download Raspberry Pi Imager https://www.raspberrypi.com/software/ and start it.
- Select Raspberry Pi OS lite (64-bit) under "Raspberry Pi OS (other)".
- Click on gear icon in the Raspberry Pi Imager and enable ssh and set username and password.
- Write image to a fast sd card.
- Connect the Raspberry Pi 4 to an ethernet cable.
- Use putty for Windows or terminal on macOS and connect via ssh:
ssh pi@raspberrypi
- Upgrade all packages
sudo apt update && sudo apt upgrade
sudo reboot now
The Raspberry Pi will restart now.
- Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
chmod +x get-docker.sh
./get-docker.sh
sudo apt-get install -y uidmap
dockerd-rootless-setuptool.sh install
sudo usermod -aG docker $USER
sudo systemctl enable docker
newgrp docker
- New folder for the server
cd
mkdir mcserver
- Run this image as Minecraft Server
docker run -d \
--restart unless-stopped \
--name mcserver \
--memory=1g \
-e PAPERMC_FLAGS='' \
-v /home/pi/mcserver:/data:rw \
-p 25565:25565 \
-it docker.io/marctv/minecraft-papermc-server:latest
The server will generate all data including the world and config files in /home/pi/mcserver
.
- Enter the command line of Minecraft server
docker attach mcserver
Here, you can use Minecraft server commands like whitelist add [userrname]
.
On GitHub https://github.com/mtoensing/Docker-Minecraft-PaperMC-Server
This server is live here: https://mc.marc.tv
Based on the work of Felix Klauke Thanks for your help!