Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →The most repeatable setup is a Docker Compose stack managed in Portainer, using the itzg/minecraft-server image with the server’s /data directory mounted to persistent storage. Portainer supplies the web interface for deploying and inspecting the stack; Docker runs the container; the image downloads and starts Minecraft. Keep the modpack’s Minecraft version, loader, Java requirement, memory allocation and client files aligned, and forward TCP port 25565 only when players connect from outside your network.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Understand what Portainer, Docker and the Minecraft image each do
Portainer is a management layer for a Docker environment. Its documentation describes a Portainer Server and, where needed, a Portainer Agent. For a single Linux host, you normally connect Portainer to the local Docker environment. Portainer does not contain Minecraft, install mods or replace the server software. It gives you a browser interface for creating a Compose-based Stack, viewing container state, reading logs and redeploying changed configuration.
As an Amazon Associate I earn from qualifying purchases.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallDocker supplies the isolated process, networking and storage mounts. The itzg/minecraft-server image is the application that downloads the requested Minecraft server and starts it. The image’s documented data boundary is /data: worlds, server properties, mod files and generated configuration remain there when the container is replaced, provided you mount that path to a host directory or Docker volume.
The finished arrangement is therefore:
- A Linux host with a supported Docker installation.
- Portainer CE using a persistent
portainer_datavolume and HTTPS on port9443. Port8000is optional for Edge features. - A Portainer Stack containing one Minecraft service.
- A persistent mount from host storage to
/data. - A published Minecraft listener on host port
25565.
Prerequisites and decisions to make before deployment
Choose the host and storage
Use a Linux machine that can run Docker continuously and has enough memory for the operating system, Docker, Minecraft and the modpack. A modpack’s advertised memory is not the entire host requirement: leave headroom for the OS, Java processes and file cache. Storage must accommodate the world, downloaded server files, logs, mods and backups. An external SSD is optional storage, not a requirement; if you use one, mount it reliably before Docker starts.
#1 Best Overall
- High-Performance Connectivity: This Cat 6 ethernet cable is designed for superior performance, with a 24 AWG copper wire core. It provides universal connectivity as an ethernet cord for LAN network components such as PCs, servers, printers, routers, and more, ensuring reliable and fast network connections
- Advanced Cat6 Technology: Experience Cat6 performance with higher bandwidth at a Cat5e price. This network cable is future-proof, ready for 10-Gigabit Ethernet and backwards compatible with any existing Cat 5 cable network. It meets or exceeds Category 6 performance according to the TIA/EIA 568-C.2 standard
- Reliable Wired Network Solution: Known variously as a Cat6 network cable, ethernet cable Cat 6, or Cat 6 data/LAN cable, this RJ45 cable offers a more secure and reliable connection than wireless networks. It's ideal for internet connections that demand consistency and security
- Durable and Secure Design: The connectors of this ethernet cable feature gold-plated contacts and strain-relief boots for enhanced durability. Bare copper conductors not only improve cable performance but also comply with communication cable specifications
- High-Speed Data Transfer: With up to 550 MHz bandwidth, this ethernet cord is ideal for server applications, cloud computing, video surveillance, and streaming high-definition video. It also supports Power over Ethernet (PoE, PoE+, PoE++) for powering devices like IP cameras, VoIP phones, and wireless access points, ensuring fast and reliable network performance.
Record the pack’s exact compatibility information
Before writing the Stack, identify the pack’s Minecraft version, loader (Fabric, Forge or NeoForge where applicable), loader version, Java requirement, server-pack format and memory guidance. The container cannot make an incompatible client pack work. Every player must use the client files and versions required by that distribution.
Decide how players will reach the server
On the same local network, players can use the Docker host’s private address and port 25565. Internet players need a reachable public address, an inbound firewall rule and router port forwarding. Carrier-grade NAT can prevent inbound connections even when your router appears correctly configured; in that case you need a network arrangement that supplies a reachable endpoint or a hosted machine. These checks depend on your ISP, router and firewall, so test from outside the host’s own network.
Install Docker and Portainer CE
- Install Docker Engine on the Linux host using Docker’s currently supported installation method for that distribution. Confirm that the Docker service starts and that your administrative account can run Docker commands.
- Deploy Portainer CE using Portainer’s current official Compose or
docker runinstructions. Create the persistentportainer_datavolume specified by those instructions and publish the HTTPS interface on host port9443. Add port8000only if you need Portainer Edge functionality. - Open
https://HOST:9443, replacingHOSTwith the Docker host’s address. Complete the first-user setup and select the local Docker environment. - In Portainer, verify that the environment is online before creating the Minecraft Stack. If it is offline, fix Docker connectivity first; a Stack cannot deploy through a disconnected environment.
Use a strong Portainer administrator password and restrict port 9443 at the firewall to trusted administration networks where practical. Portainer’s HTTPS endpoint is separate from the Minecraft listener.
Create the Minecraft Stack in Portainer
In the local environment, select Stacks, choose Add stack, give it a name such as minecraft, and select the Web editor. Paste a Compose definition like this one, then change the values that are specific to your pack:
Rank #2
- High Performance Cat6 Cable - The Cat6 ethernet cables 100ft supports frequencies of up to 500 MHz and high-speed 10GB internet connection for LAN network applications such as PCs,computer servers,printers,routers,switch boxes,network media players,NAS,VoIP phones and more, while remaining fully backward compatible with your existing network.
- Outdoor&Indoor Ethernet Cable - The cat 6 ethernet patch cable features 8 solid copper conductors 24 AWG. Each of the 4 unshielded twisted pairs (UTP) are separated by a PE cross insulation to isolates pairs and prevent crosstalk and covered by a 5.8mm PVC jacket with RJ45 connectors and gold-plated contacts. The molded strain relief boots help avoid snags that will damage your cables. They are molded for flexibility and resist common wear and tear.
- Lan Cable with RJ45 - UTP(Unshielded Twisted Pair) patch cable with RJ45 gold-plated Connectors, this cat6 cable support Cat8 and Cat7 network and provides performance of up to 500 MHz 10Gbps and is suitable for 10BASE-T, 100BASE-TX (Fast Ethernet), 1000BASE-T/1000BASE-TX (Gigabit Ethernet) and 10GBASE-T (10-Gigabit Ethernet)
- High Quality Control - are designed with extremely well-matched components for outstanding uniform impedance and very low return loss, providing lower crosstalk, and a higher signal-to-noise ratio. Each Cat 6 internet cable 6 ft goes through rigorous testing to ensure a secure wired internet connection with exceptional speed and reliability.
- Support – Cat6 Ethernet cable with CM grade PVC jacket complies with TIA/EIA 568-C.2, is ETL verified and RoHS compliant. If an item is defective or breaks within a year, we will issue a replacement. For questions or concerns please contact our friendly, USA-based customer Support team.
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
restart: unless-stopped
ports:
- '25565:25565'
environment:
EULA: 'TRUE'
TYPE: 'FABRIC'
VERSION: '1.21.1'
MEMORY: '4G'
volumes:
- ./minecraft-data:/data
The example establishes the image, persistent path, restart policy, EULA acceptance and published port. The TYPE, VERSION and MEMORY entries are examples, not universal settings. Replace them with the loader, Minecraft version and memory required by your pack. Check the image’s current documentation for variable names and supported values before deploying a new pack.
What each setting means
imageselects the Minecraft server image. Thelatesttag follows the image’s latest release; pin a tested tag when you need deliberate upgrades rather than automatic image changes.pull_policy: dailypermits a daily image check when Compose supports that policy. It does not replace testing or a backup before an upgrade.ttyandstdin_openkeep an interactive console available for tools that expect it.restart: unless-stoppedbrings the service back after a host or Docker restart, but it does not repair a configuration or mod incompatibility.25565:25565publishes the container’s default Minecraft port on the same host port. Do not change the outside port unless you also tell players the new port and adjust firewall and router rules.EULA: 'TRUE'records acceptance required for startup. Deploying without it stops the server rather than bypassing the agreement../minecraft-data:/datastores server files in a directory relative to the Stack’s project location. A named volume can be used instead; whichever method you choose, keep it stable across redeployments.
Configure Fabric, Forge, NeoForge and packaged modpacks
Fabric deployments
The image documents Fabric with TYPE=FABRIC. Set the Minecraft VERSION required by the pack; the image installs the loader for that version and supports Modrinth downloads. Add the mod distribution settings documented for the particular pack, then verify that the server-side and client-side mod lists match. A Fabric server that starts successfully can still reject players when a required client mod or version is missing.
Forge and NeoForge deployments
Forge and NeoForge packs require the loader family and versions named by the pack author. Select the corresponding mode and image settings from the current image documentation rather than assuming a Fabric value will work. Confirm the Java compatibility of the selected image tag, because a loader may fail before world loading when Java is too old or too new.
CurseForge distributions
For new deployments, use the image’s AUTO_CURSEFORGE path where the pack supports it. Supply the pack’s page URL or file URL and the API key required by that distribution. Keep the key in Portainer’s environment handling, a .env file with restricted permissions, or a Docker Secret; do not commit it to a public Compose file. Most such packs need substantially more memory: the image documentation says the default is 1 GB and recommends setting MEMORY to at least 4G for most Auto-CurseForge modpacks.
Rank #3
- Cat 6 performance at a Cat5e price but with higher bandwidth
- High Performance Cat6, 30 AWG, RJ45 Ethernet Patch Cable provides universal connectivity for LAN network components such as PCs,computer servers,printers,routers,switch boxes,network media players,NAS,VoIP phones
- Jadaol cat6 standard cable support Cat8 and Cat7 network and provides performance of up to 250 MHz 10Gbps and is suitable for 10BASE-T, 100BASE-TX (Fast Ethernet), 1000BASE-T/1000BASE-TX (Gigabit Ethernet) and 10GBASE-T (10-Gigabit Ethernet)
- UTP(Unshielded Twisted Pair) patch cable with RJ45 gold-plated Connectors and are made of 100% bare copper wire, ensure minimal noise and interference
- The unique flat cable shape allows for a cleaner and safer installation. You can easily and seamlessly make the cable run along walls, follow edges & corners or even make it completely invisible by sliding it under a carpet.
The manual CurseForge server-pack mode is marked deprecated for new deployments. Existing installations may still document it, but start new work with the automatic mode when the pack and image support it. A server-pack download can also have a Java requirement that differs from another pack, so select an image tag compatible with the pack before you deploy.
Comparison of common choices
| Choice | Container configuration focus | Distribution and access requirements | Operational concern |
|---|---|---|---|
| Fabric | TYPE=FABRIC plus the pack’s Minecraft VERSION |
Loader is installed for the selected version; Modrinth downloads are supported by the image | Client and server mod versions must remain aligned |
| Forge or NeoForge | Use the loader mode and Java-compatible image tag required by the pack | Use the pack’s server files and distribution instructions | Loader, Minecraft and Java compatibility must match |
| Auto-CurseForge | AUTO_CURSEFORGE, pack URL, API-key handling and sufficient MEMORY |
API key is required; most packs should receive at least 4G rather than the 1 GB default |
Use this current path for new deployments; manual CurseForge is deprecated |
Deploy and watch the first startup
- In the Stack editor, add the required environment variables. If the image supports an environment-file or generic-pack file for your distribution, load only files you trust; shell-style environment files are evaluated and can execute substitutions.
- Review the volume path, port mapping and secrets. Make sure the host directory exists and is writable by the container’s process where your host security policy requires it.
- Select Deploy the stack. Portainer creates the network and container and begins downloading the server, loader and pack files.
- Open the Stack, select the Minecraft container and choose Logs. Wait for generation and downloads to finish. The first start can take considerably longer than later starts because files and a world are created.
- Do not treat a running container alone as proof that the server is ready. Look for the image’s normal ready message and check that no repeated exception, missing-file or out-of-memory error follows it.
- Connect locally first. Once local access works, test the public address from a different network so that a router hairpin limitation does not confuse the result.
For command-line inspection, the image documentation uses docker compose logs -f to follow output, docker compose ps to inspect service state and docker compose stop for a controlled stop. The same information is available through Portainer’s Stack and container views.
Keep worlds and configuration when containers change
The /data mount is the persistence boundary. Recreating a container with the same host directory or named volume preserves the world, server properties, whitelist, mods and generated files. Recreating it without that mount creates a fresh server and makes the old world appear to have disappeared.
Host directory or named volume
- A bind mount such as
./minecraft-data:/dataleaves files in a host directory that you can inspect and back up with normal host tools. - A named volume is managed by Docker and avoids dependence on the Stack’s working-directory location. It is convenient when Portainer moves or redeploys the Stack, but you must use Docker-aware backup and restore procedures.
- If you inherit an image configuration using an anonymous volume, convert it to a deliberately named volume before making major changes. The image documentation describes that conversion.
SELinux, rootless and confinement labels
On some rootless, SELinux or AppArmor configurations, the host directory needs the :Z mount suffix or an equivalent security-label adjustment documented for your system. Add it only when your host policy requires it, and check the resulting permissions in the logs. A permission denial is different from a mod or Java failure.
Rank #4
- 40 Gbps 2000 Mhz High Speed: The Cat 8 ethernet cable support max. 40 Gbps data transfer and 2000 MHz Brandwith, ideal for gaming and streaming, greatly improving upload and download speed, sound, image and resolution quality
- Excellent Anti-interference: The ethernet cable comes with 4 shielded foiled twisted pairs (F/FTP), pure copper core and gold-plated RJ45 connector, reducing interference, noise and crosstalk, making network speed faster and more stable
- Marvelous Durability: Internet cable wrapped with quality cotton braided cord, which makes the LAN cable stronger and more durable. The test proves that this internet cable can be bent at least 10000 times without broken, very suitable for long-term use
- PoE Supported: All lengths of ethernet cord can support the PoE power supply function except 65ft. You don't need additional power supply when installing a PoE camera, which is very convenient and safe
- Wide Compatibility: With the RJ45 Connector, network cable can be perfectly compatible with computers, laptops, modems, routers, PS5, X-Box and other networking devices. It can also be fully backward compatible with Cat7, Cat6e, Cat6, Cat5e, Cat5
Back up before updates
Stop the server cleanly before copying the data directory so that region files and player data are not being written during the backup. Keep at least one backup outside the live Docker volume and periodically test restoring it to a separate Stack. A restart policy is not a backup strategy.
Networking: port 25565, firewalls and CGNAT
Inside Docker, the server listens on its normal Minecraft port. The Compose mapping publishes host TCP port 25565. Players on your LAN use the host’s private address and that port. Internet players use your public address and the same port only after the following path is open:
- The host firewall allows inbound TCP
25565to Docker. - The router forwards TCP
25565to the Docker host’s fixed private address. - Your ISP supplies a publicly reachable address rather than carrier-grade NAT that blocks unsolicited inbound traffic.
- The player uses the correct address and port, and your router’s hairpin behavior does not affect the test.
Do not expose Portainer’s administration port to the public internet merely to make Minecraft reachable. Keep administration and game traffic as separate firewall decisions. If you change the host-side port, communicate the new value and update every firewall and forwarding rule.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Safe updates and routine operation
Change configuration through the Stack
When you change Compose variables, edit the Stack and redeploy it. Do not hand-edit a running container: those changes disappear when Portainer recreates the service. Read the startup output after every redeploy and keep the previous known-good values until the new configuration has been verified.
Best Value
- 👌 𝗠𝗜𝗟𝗜𝗧𝗔𝗥𝗬-𝗚𝗥𝗔𝗗𝗘 𝗤𝗨𝗔𝗟𝗜𝗧𝗬 -> 𝟭𝟬𝟬% 𝗚𝗨𝗔𝗥𝗔𝗡𝗧𝗘𝗘𝗗!: Each & every of our cable is individually tested with a 𝐃𝐒𝐗-𝟖𝟎𝟎𝟎 𝐂𝐀𝐁𝐋𝐄 𝐂𝐄𝐑𝐓𝐈𝐅𝐈𝐄𝐑 to ensure customer satisfaction, the most highest & consistent quality & compliance with 568.2C standards
- 💪 𝗛𝗘𝗔𝗩𝗬-𝗗𝗨𝗧𝗬 𝗖𝗢𝗡𝗦𝗧𝗥𝗨𝗖𝗧𝗜𝗢𝗡, 𝗥𝗘𝗠𝗔𝗥𝗞𝗔𝗕𝗟𝗘 𝗣𝗘𝗥𝗙𝗢𝗥𝗠𝗔𝗡𝗖𝗘 & 𝗦𝗨𝗣𝗘𝗥-𝗗𝗨𝗥𝗔𝗕𝗟𝗘: Our cable produces the strongest signal, along with the best conductivity, when compared to any other cable of the whole market | Our cable is an outstanding choice for 10 gigabit ethernet | RoHS certified | REACH certified | ISO 9001:2015 certified
- 🤝 𝗛𝗜𝗚𝗛𝗘𝗦𝗧 𝗖𝗢𝗣𝗣𝗘𝗥 𝗖𝗢𝗡𝗧𝗘𝗡𝗧 𝗢𝗙 𝗧𝗛𝗘 𝗪𝗛𝗢𝗟𝗘 𝗠𝗔𝗥𝗞𝗘𝗧: Copper & aluminium mix ensures the most perfect price-to-performance & durability ratio for customers | Monk Cables enable customers to reap the rewards of CCA through huge savings
- ❤️ 𝗕𝗥𝗜𝗧𝗧𝗟𝗘-𝗙𝗥𝗘𝗘, 𝗘𝗔𝗦𝗬-𝗧𝗢-𝗪𝗢𝗥𝗞-𝗪𝗜𝗧𝗛 & 𝗖𝗢𝗠𝗣𝗔𝗧𝗜𝗕𝗟𝗘 𝗪𝗜𝗧𝗛 𝗜𝗡𝗗𝗢𝗢𝗥 𝗨𝗦𝗔𝗚𝗘: Our cable comes packaged in a hassle-free & tangle-free easy-pull box | Running "ft" count after every foot makes measuring the cable extremely easy | Fire-retardant, sunlight-resistant & weather-proof plenum jacket fulfils rigorous fire protection safety standards for usage in plenum air spaces which typically are above drop ceilings or below raised floors
- ✅ 𝗧𝗛𝗘 𝗢𝗡𝗟𝗬 𝗖𝗔𝗧𝟲 𝗣𝗟𝗘𝗡𝗨𝗠 𝗖𝗔𝗕𝗟𝗘, 𝗬𝗢𝗨'𝗟𝗟 𝗘𝗩𝗘𝗥 𝗡𝗘𝗘𝗗 𝗧𝗢 𝗕𝗨𝗬!: Ridiculously easy 30 days return policy | 24/7 super-friendly customer support, with 100% satisfaction guarantee | If you ever face any issues while using our product, we will replace it right away, no questions asked!
Upgrade the image or modpack deliberately
- Read the pack’s release notes and confirm its Minecraft, loader and Java requirements.
- Back up
/dataand record the current image tag and environment values. - Change one major variable at a time when possible, such as the image tag or pack version, so a failure has a clear cause.
- Redeploy and watch logs through world loading. If the server fails, restore the previous image and variables before attempting another change.
A newer container image does not automatically make an old world compatible with a newer modpack. Treat world upgrades as one-way changes until a tested backup proves otherwise.
Recommended Free Tools
Graceful shutdown and RCON
The image enables RCON by default to coordinate graceful shutdown and saving. If you set a password, prefer RCON_PASSWORD_FILE backed by a Docker Secret instead of putting the password directly in the Compose text. Keep RCON private; it is an administration interface, not a player connection method.
Troubleshoot by symptom
The container exits immediately
- Check that
EULAis exactlyTRUE. - Read the first error in Portainer logs rather than the final shutdown line.
- Verify the selected Minecraft version, loader mode, Java-compatible image tag and required server-pack format.
- Check that the mounted
/datapath is writable and has enough free space.
The pack downloads but Minecraft never becomes ready
- Confirm that the pack URL or file URL points to a server distribution supported by the selected mode.
- For CurseForge, verify the API key, its storage method and the use of
AUTO_CURSEFORGEfor a new deployment. - Increase
MEMORYto the pack’s documented requirement; most Auto-CurseForge packs should start with at least4G, subject to host capacity. - Check for a Java mismatch, missing server-only files or a loader version that does not match the Minecraft version.
Players cannot connect
- Test from the host first, then from the LAN, then from an external network.
- Confirm that the container is running and that Compose publishes
25565:25565. - Review host firewall and router forwarding rules.
- Check for CGNAT or a changed public address before changing the Minecraft configuration.
The world appears to be gone after redeployment
Inspect the container’s mount and confirm that it points to the original host directory or named volume. A changed relative path, a newly created named volume or a deleted bind-mount directory produces an apparently empty server. Stop the container, locate the original data and restore the intended mount before starting again.
Permission or security-label errors appear
Compare the host directory ownership and labels with the requirements of your Docker mode. On systems using SELinux or similar confinement, apply the documented :Z adjustment when appropriate. Avoid making the entire host filesystem writable just to silence one error.
Self-hosting versus a VPS for this design
Portainer and the Compose file work in either location; the practical difference is the network and administration boundary.
- Home host: You control the hardware and local latency, but must handle electricity, upload bandwidth, router forwarding, changing public addresses and possible CGNAT. Local backups and physical storage are your responsibility.
- VPS: A hosted machine usually offers a public network endpoint and avoids home-router forwarding, but introduces a recurring hosting bill, provider storage limits, bandwidth policies and remote administrative access. You still need persistent storage, backups and firewall rules.
Choose the location that meets the pack’s memory and storage needs while giving players a stable route to port 25565. The Docker and Portainer workflow remains the same; only the host’s network, disks and maintenance responsibilities change.
A practical pre-launch checklist
- Docker is installed and the Portainer local environment is online.
- Portainer opens at
https://HOST:9443, with a persistentportainer_datavolume. - The Stack mounts a stable host directory or named volume to
/data. EULAis set toTRUEand the Stack publishes25565:25565.- The Minecraft version, loader, Java compatibility and server-pack format match the modpack.
- Memory is sized for the pack; Auto-CurseForge deployments generally need at least
4Grather than the 1 GB default. - CurseForge API keys, RCON passwords and environment files are stored as secrets or otherwise protected.
- Logs show a completed startup, and a player has connected locally before public testing.
- A clean backup of
/dataexists before the first upgrade.
With those controls in place, Portainer gives you a repeatable way to deploy and update the container while Docker supplies isolation and the persistent /data mount protects the world from ordinary container recreation.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




