Legendary Minecraft Bedrock Container

Minecraft Bedrock Docker Edition
Minecraft Bedrock Docker Edition

I’ve been getting asked to put this together for years including in official GitHub issues. I always knew it would be a great idea but it turned out even better than I expected. This image works great on all platforms including Raspberry Pi!

This is based off my Minecraft Bedrock Linux Dedicated Server scripts for Linux project. I’m going to release a version for the Java Minecraft edition as well so stay tuned for that.

The official GitHub repository is located here.

The official Docker Hub repository is located here.

If you are looking for the Java version of the Docker container it is located here. This is for the Bedrock edition of Minecraft.

You can also run my Geyser + Floodgate Java Minecraft Server container and Bedrock players will be able to connect to it!

It’s now possible to convert your worlds between Bedrock and Java versions. Check out my guide on Chunker here for more information.


  • Sets up the official Minecraft Bedrock Server (currently in alpha testing)
  • Fully operational Minecraft Bedrock edition server in a couple of minutes
  • Adds logging with timestamps to “logs” directory
  • Multiarch Support – all Docker platforms supported including Raspberry Pi
  • Automatic backups when container/server restarts
  • Supports multiple instances — you can run multiple Bedrock servers on the same system
  • Updates automatically to the latest or user-defined version when server is started
  • Files stored in named Docker volume allowing for extremely easy access/editing and leveraging more advanced Docker features such as automatic volume backups
  • *NEW* – Box64 support added for improved speeds on aarch64 (ARM 64 bit)


First you must create a named Docker volume. This can be done with:

docker volume create yourvolumename

Now you may launch the server and open the ports necessary with one of the following Docker launch commands.

With default ports:

docker run -it -v yourvolumename:/minecraft -p 19132:19132/udp -p 19132:19132 -p 19133:19133/udp -p 19133:19133 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

With custom ports:

docker run -it -v yourvolumename:/minecraft -p 12345:12345/udp -p 12345:12345 -p 12346:12346/udp -p 12346:12346 -e PortIPV4=12345 -e PortIPV6=12346 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

IPV4 only:

docker run -it -v yourvolumename:/minecraft -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

Configuration / Accessing Server Files

The server data is stored where Docker stores your volumes. This is typically a folder on the host OS that is shared and mounted with the container. I’ll give the usual locations here but if you’re having trouble just do some Googling for your exact platform and you should find where Docker is storing the volume files.

You can find your exact path by typing:

docker volume inspect yourvolumename

This will give you the fully qualified path to your volume like this:

        "CreatedAt": "2022-05-09T21:08:34-06:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/yourvolumename/_data",
        "Name": "yourvolumename",
        "Options": {},
        "Scope": "local"

On Linux it’s typically available at:


On Windows it’s at


but may be located at something more like


if you are using WSL (Windows Subsystem for Linux).

On Mac it’s typically


If you are using Docker Desktop on Mac then you need to access the Docker VM with the following command first:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

You can then normally access the Docker volumes using the path you found in the first step with docker volume inspect

Most people will want to edit server.properties. You can make the changes to the file and then restart the container to make them effective.

Backups are stored in the “backups” folder

Log files with timestamps are stored in the “logs” folder.

Version Override

In some scenarios you may want to run a specific version of the Bedrock server. That is now possible by using the “Version” environment variable:

-e Version=

For example:

docker run -it -v yourvolumename:/minecraft -e Version= -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

This is useful if Microsoft hasn’t released versions of the client and dedicated server at the same time so you can match whichever version your players can connect with.

Clean Environment Variable

If the server is having trouble starting you can clean the downloads folder and force reinstallation of the latest version like this:

docker run -it -v yourvolumename:/minecraft -e Clean=Y -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

This is useful if a download corrupted or something modified your container contents as it will clear everything out and reinstall the latest Bedrock server fresh.

Disable Box64 (aarch64 only):

If you are having trouble running the dedicated server with Box64 support you can tell it to use QEMU instead with:

-e UseQEMU=Y

For example:

docker run -it -v yourvolumename:/minecraft -e UseQEMU=Y -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

TZ (timezone) Environment Variable

You can change the timezone from the default “America/Denver” to own timezone using this environment variable:

docker run -it -v yourvolumename:/minecraft -e TZ="America/Denver" -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

A list of Linux timezones is available here.

NoPermCheck Environment Variable

You can skip the permissions check (can be slow on very large servers) with the NoPermCheck environment variable:

docker run -it -v yourvolumename:/minecraft -e NoPermCheck="Y" -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-bedrock-container:latest

Troubleshooting Note – Oracle Virtual Machines

A very common problem people have with the Oracle Virtual Machine tutorials out there that typically show you how to use a free VM is that the VM is much more difficult to configure than just about any other product / offering out there.

It is because there are several steps you need to take to open the ports on the Oracle VM. You need to both:

  • Set the ingress ports (TCP/UDP) in the Virtual Cloud Network (VCN) security list
  • *and* set the ingress ports in a Network Security Group assigned to your instance

Both of these settings are typically required before you will be able to connect to your VM instance. This is purely configuration related and has nothing to do with the script or the Minecraft server itself.

I do not recommend this platform due to the configuration difficulty but the people who have gone through the pain of configuring an Oracle VM have had good experiences with it after that point. Just keep in mind it’s going to be a rough ride through the configuration for most people.

Troubleshooting Note – Hyper-V

There is a weird bug in Hyper-V that breaks UDP connections on the Minecraft server. The fix for this is that you have to use a Generation 1 VM with the Legacy LAN network driver.

There is a second fix that was shared by bpsimons here. For that fix you need to install ethtool first with sudo apt install ethtool. Next in your /etc/network/interfaces file add “offload-tx off” to the bottom as the issue appears to be with TX offloading.

Here’s an example:

# The primary network interface
auto eth0
iface eth0 inet static
offload-tx off

This can also be done non-persistently with the following ethtool command:

ethtool -K eth0 tx off

Additional Support

The comments section right here is the best place for support. The second best place is the GitHub issues section.

I will add additional documentation based on what problems people are running into / questions people are asking because right now I’m not really sure what those will be yet. Definitely let me know if you need any of these things!

Notify of

Inline Feedbacks
View all comments
1 month ago

I recently got the container installed and started it using the ipv4 command. It appears that the server starts up ok, but I cannot connect to it from my local network. Any ideas what might be going on or how to begin troubleshooting? Thanks!

1 month ago

Thank you for the response! I was very confused as well since it was all on my local network with no Vlans or other complications. But it ended up just being the instance of Minecraft on one iPad. Everything worked great once I tried another iPad. Thanks again!

1 month ago

Hello, I am having an issue getting connected. The server seems to be running fine, however I cannot connect via port 25565 (Windows) or 19132 (Switch). I am trying to run this behind traefik so friends can just put in my url instead of my public ip. I am also running this in docker-compose as opposed to regular docker run.

3 months ago

Hi James,

Really looking forward to trying out this docker method. Having a little trouble though.

Firstly, I ran into the connection issue that produces this output:

Checking for the latest version of Minecraft Bedrock server …
Unable to connect to update website (internet connection may be down). Skipping update …
Starting Minecraft server…
/bin/bash: line 1: ./bedrock_server: No such file or directory

I tried setting the DNS servers manually when running the docker container, to no avail. So, I downloaded the bedrock server manually and expanded it to my docker volume. I then run into some sort of system error though, which makes me think maybe it’s a docker issue:

Checking for the latest version of Minecraft Bedrock server …
Unable to connect to update website (internet connection may be down). Skipping update …
Starting Minecraft server…
terminate called after throwing an instance of ‘std::system_error’
what(): Operation not permitted

Any troubleshooting ideas would be most appreciated!

The command I’m using to run is this:

docker run -it -v minecraft_volume:/minecraft -e Clean=Y -p 19132:19132/udp -p 19132:19132 –dns= –restart unless-stopped 05jchambers/legendary-bedrock-c

3 months ago

Hi! Great docker, me and extended family using it for a while now. I had some issues first (because I’m new to the docker scene mostly), like I wanted the backups to end up at an archive HDD instead of being written to NVMe. Symbolic links apparently doesn’t work(?) with containers, so had to solve it by setting up another volume in docker-compose.yml which pointed where I wanted it – this works fine.

We’ve had some issues with the server crashing lately though, which has revealed a few things I’d like to look into.
First of all, I’d like to disable the backups completely – there’s really not any point of getting 10 backups of the same day just because the server is crashing. I’ll run my own backup once per day instead.
Setting the backup variable to 0 first writes the entire backup, and then deletes it, which feels … not ideal.
I tried to solve this by copying the start.sh script and having my local (very slightly modified) version of start.sh being the entrypoint instead, but couldn’t make it work. Don’t even know if it’s possible. 🙂

Also, are there any logs available? I can set content-log-file-enabled=true, but this supposedly only writes something when a resource/behavior pack is the issue, I’ve never seen any log from this.
I’m guessing it might be possible to write the output from the server into a file or something similar?

Again, thanks for great work! Hope someone might be able to help me.

3 months ago

Yeah I didn’t think the crashing was due to the container, as you said, just ran into the other “issues” when trying to figure out what was happening. 🙂

For posterity I found out what was causing the crashing… it was a redstone etho hopper clock crossing a chunk boundary (and maybe also a ticking area boundary) in a way that caused a piston and redstone block to be set in an errenous state. The redstone block could exist in two spots at once. Really weird.

Thanks a ton for the info! And yeah I think it’s not really common to mess around with containers and links – I’m just a control freak with the server and want everything exactly in the “right” place 😀
The next time I’m having an issue with the server now, I’ll know where to look.

Kind Regards

1 3 4 5