iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Run the server with itzg/minecraft-bedrock-server, accept the EULA with EULA: "TRUE", and mount /data to a host directory or named volume. Manage it with Docker Compose so the world, configuration, upgrades, logs, and rollback steps are reproducible. For Bedrock Dedicated Server (BDS) 1.26.50 and later using the README’s NetherNet example, publish TCP port 19132 and UDP ports 19140–19155, and set SERVER_UDP_PORTS to the Docker host address and range.
What this setup does
The itzg image is a container wrapper around Mojang’s Bedrock Dedicated Server. The Bedrock server software is not packaged inside the Docker image; the container downloads or upgrades it from Mojang when it starts. That means an image update and a Mojang server release are separate events. A newly pulled image does not by itself guarantee a new BDS version, and a restart with the default version setting can install a newer BDS release.
The container’s important state lives under /data. Mounting that path outside the container preserves the world, server properties, allow-list, permissions, and other files when you recreate or upgrade the container. Without a persistent mount, removing the container can remove the server you care about.
Prerequisites and design choices
- A Docker Engine installation with the Compose plugin (the command is
docker compose). - A host with enough disk space for the BDS files, world data, logs, and backups. The cited official material does not publish a universal storage or maximum-player figure, so size the host from your own world growth and retention policy.
- A decision about persistence: a bind mount such as
./data:/datais easy to inspect and copy, while a named volume is managed by Docker but may need ownership preparation for non-root operation. - A decision about exposure: publish only the transport ports required by the BDS version and network mode you selected, then enforce additional filtering on the Docker host or upstream firewall.
Build a Compose deployment
Minimal current-style file
Create a directory for the service, then save this as compose.yaml:
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
services:
bds:
image: itzg/minecraft-bedrock-server
environment:
EULA: "TRUE"
SERVER_UDP_PORTS: "192.168.1.10:19140-19155:19140-19155"
GAMEMODE: survival
DIFFICULTY: normal
ports:
- "19132:19132/tcp"
- "19140-19155:19140-19155/udp"
volumes:
- ./data:/data
stdin_open: true
tty: true
Replace 192.168.1.10 with the Docker host’s LAN address when players connect over your local network, or with the appropriate public address when the host is reached from the internet. The address in SERVER_UDP_PORTS must match the address clients are expected to use; it is not a substitute for router or firewall forwarding.
Start and observe the service
- From the directory containing
compose.yaml, rundocker compose up -d. Compose creates the container and the bind-mounteddatadirectory if necessary. - Follow startup output with
docker compose logs -f. Keep watching until the Bedrock process has completed its download and reports that it is ready to accept connections. - Confirm the container remains running with
docker compose ps. If it exits, read the complete log before changing settings; an EULA, permission, download, or port error will normally be visible there.
Understand the networking and port requirements
NetherNet in BDS 1.26.50 and later
The official itzg example for BDS 1.26.50 and later uses NetherNet by default. It maps TCP 19132 for the initial connection and UDP 19140 through 19155 for gameplay, and it sets SERVER_UDP_PORTS to the host address and the same range. Keep the protocol suffixes in the Compose file: TCP and UDP are different transports even when a port number looks similar.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →If you run another BDS version or select another transport, follow that version’s transport-specific instructions rather than blindly applying the NetherNet range. A client that can discover the server but cannot join often indicates an incomplete UDP mapping, an incorrect advertised host address, or a firewall/router rule that forwards only TCP.
Host and router controls
- On a LAN, allow the published TCP and UDP ports through the host firewall and connect to the host’s LAN address.
- For internet access, forward the selected TCP and UDP ports from the router to the Docker host, then restrict source addresses where practical.
- Do not expose unrelated container ports. Docker publishing is not a complete firewall or authentication policy.
Configure gameplay and access
Environment variables are translated into Bedrock server properties when the container initializes. Common settings include:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
| Variable | Purpose | Example |
|---|---|---|
GAMEMODE |
Default game mode for the server. | survival |
DIFFICULTY |
World difficulty. | normal |
LEVEL_NAME |
World or level name. | family-world |
MAX_PLAYERS |
Configured player limit. | 10 |
ONLINE_MODE |
Bedrock online-authentication behavior. | true or the value supported by the current README |
VIEW_DISTANCE |
Server view distance. | Set deliberately for your host’s workload |
TICK_DISTANCE |
Simulation distance around players. | Set deliberately for your host’s workload |
Use the exact variable names and accepted values documented by the current image README. Put durable choices in Compose rather than editing a running container; a replacement container will not retain ad-hoc changes made inside its writable layer.
Operators, members, visitors, and allow-listing
The image supports identifier lists through OPS, MEMBERS, and VISITORS. For a private server, configure an allow-list with ALLOW_LIST and ALLOW_LIST_USERS, or maintain allowlist.json in the mounted data directory according to the current README. Test the policy with a permitted account and an account that should be rejected before sharing the address publicly.
Send commands without attaching to the process
The image includes send-command. For example:
docker exec CONTAINER_NAME_OR_ID send-command gamerule dofiretick false
The command’s output appears in the container logs. Replace the placeholder with the actual container name or ID shown by docker compose ps. Use Compose environment settings for persistent configuration and in-game commands for state that belongs to the world.
Choose and verify persistent storage
Bind mount
The example’s ./data:/data bind mount keeps files in a directory beside the Compose file. It makes the worlds directory and configuration files easy to inspect, archive, copy to another host, or scan for available space. Ensure the Docker process can read and write the directory.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Named volume
A named volume keeps data in Docker’s storage area and avoids tying the service to a particular project path. The trade-off is that inspecting and copying files requires Docker volume commands or a temporary helper container. If you run the image as a non-root UID/GID, pre-create the volume and set ownership so the server can write to /data; otherwise startup can fail with permission errors.
What must survive replacement
- The
worldsdirectory, which contains the playable worlds. server.propertiesand other generated configuration files.allowlist.json, permission data, and any other files your policy depends on.- Any custom packs or server-side content stored under
/data.
Back up the Bedrock server correctly
Capture the complete data tree
A useful backup includes the mounted /data tree, not just a single world folder. At minimum, verify that the archive contains worlds, server configuration, allow-list and permission files, and any custom content. Quiesce writes before copying when possible: stop the service with docker compose stop, copy the data, then run docker compose start. If you cannot stop the server, use a method that produces a consistent snapshot and document that consistency assumption.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesUse a separate backup component only after checking its policy
The Docker Hub listing identifies kaiede/minecraft-bedrock-backup as a solution for backing up data. Treat it as a separate component, not as an automatic property of the itzg image. Verify its current schedule, destination, retention, permissions, and restore procedure before relying on it. The cited documentation does not establish a complete retention policy, off-host destination, tested recovery time, or disaster-recovery benchmark for that component.
The one explicit package-backup default is PACKAGE_BACKUP_KEEP=2. That setting concerns package backups and should not be presented as a world-backup retention plan. Define how many dated copies you keep, where they are stored away from the Docker host, how long they remain available, and who can read them.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Prove that a backup is restorable
- Record the BDS version, Compose file, environment values, and the date of the backup.
- Copy the backup to a separate test directory or host.
- Start a test Compose project using that copy as
/data, with network exposure disabled or restricted. - Inspect logs, confirm the expected world appears, and join with a test client if practical.
- Only after verification should you treat the backup as a recovery point.
Upgrade, pin, and roll back safely
Control the BDS version
VERSION=LATEST is the default and checks for a newer Bedrock release when the container starts. VERSION=PREVIEW selects the latest preview. You can pin a specific version when reproducibility or temporary avoidance of a newly introduced bug matters. Because the server download occurs at startup, changing the version normally requires a restart rather than rebuilding an image.
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 reinstallRecommended maintenance sequence
- Choose whether to keep
VERSION=LATEST, usePREVIEW, or pin a specific release. - Take a copy of the complete
/datadirectory and verify that it can be read. - Edit the Compose environment rather than changing files inside an ephemeral container.
- Restart through Compose with
docker compose up -d(or stop and start it explicitly). - Review
docker compose logs -fand test login, world loading, permissions, and gameplay.
With VERSION set to LATEST, restarting the container is the documented upgrade mechanism. If a release causes a problem, restore the prior /data copy and pin the previously working version while you investigate.
Compose versus a one-off docker run command
| Concern | Compose | One-off docker run |
|---|---|---|
| Configuration | Environment, ports, mounts, and terminal settings stay in a reviewable file. | Options are easy to omit or mistype when recreating the container. |
| Upgrades | Change the version or image, then restart the same service and volume. | Requires rebuilding a long command and remembering every flag. |
| Persistence | The /data mount is declared beside the service. |
The mount must be re-entered exactly on every replacement. |
| Logs and operations | docker compose logs, ps, stop, and start share one service name. |
Commands depend on remembered container names or IDs. |
| Rollback | Restore the data copy and edit one version value. | Reconstruct the old command and volume mapping manually. |
A one-off command can be useful for a quick experiment, but the project recommends a management layer such as Docker Compose or Kubernetes for long-running servers and incremental reconfiguration.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot the failures that matter most
The container exits immediately
Check docker compose logs. The most common setup error is a missing or incorrectly cased EULA value; it must be EULA: "TRUE". A permissions failure points to ownership on the bind mount or named volume. A download or version error requires checking the selected VERSION and outbound connectivity from the host.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Players see the server but cannot join
Confirm that TCP 19132 and the required UDP range are both published for NetherNet, that SERVER_UDP_PORTS advertises the correct host address, and that host and router firewalls allow UDP. Verify that the client and server are using a compatible BDS release and transport.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →The world disappeared after recreation
Inspect the Compose mount and ensure it still points to the original directory or named volume. If the service was started once without a persistent /data mount, the world may exist only in the discarded container layer; restore it from a verified backup if one exists.
Configuration changes do not stick
Put the setting in Compose or edit the intended file under the mounted /data path, then restart as required. Editing a generated file in a temporary container does not create a durable configuration policy.
Quick Recap
Security checklist before sharing the address
- Enable an allow-list for private communities and review it after player changes.
- Assign operator, member, and visitor permissions deliberately; do not grant operator access as a substitute for normal membership.
- Publish only the TCP and UDP ports required by the selected BDS transport.
- Apply host-firewall and router rules separately; the image does not provide firewalling or a tested internet-hardening profile.
- Keep backups off the Docker host when protection from disk failure, accidental deletion, or host compromise matters.
- Test restoration before calling the service resilient.
Operational checklist
- Persistent data:
/datais mounted to a bind directory or prepared named volume. - Startup:
EULAis exactlyTRUE, and logs show a ready server. - Networking: TCP 19132 and UDP 19140–19155 are mapped for the BDS 1.26.50-and-later NetherNet example, with the correct advertised host address.
- Version policy:
VERSIONis deliberately set toLATEST,PREVIEW, or a pinned release. - Backups: the complete data tree is copied, stored separately, retained according to a written policy, and restored in a test.
- Maintenance: Compose files are the source of truth, and logs are checked after every restart or upgrade.
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.

