For anyone running Linux who wants, or needs, to run a Windows program, there are few ways to do it and sometimes it doesn't work. Some Windows apps will not run on WINE, or the like, and you are stuck not being able to use it.
Some people will run a virtualized Windows system inside Linux and make it work that way.
WinBoat is another such virtualized system that runs on Docker. This method has a few more alternatives and seems faster.
In this article, I can help you get WinBoat set up, and we will do this as if your system is a newly installed system so that we can go over setting everything up from scratch.
I will go over setting this up in the following operating systems:
Hardware-wise, you need over 4 GB of RAM, two CPU cores, 32 GB of free drive space (after the installation of WinBoat) and the system must support KVM (virtualization). The rest of the requirements are software and configuration based.
Ubuntu/Debian
For Ubuntu and Debian, the installation is basically the same, with just a few changes between the two.
To start, we need to update the existing packages and the repository list. Once these are done, we need to install a few required packages:
Next, we need the encryption keys for Docker:
Then, we need the Repository added to our Repository list. Here, there is a difference between the Ubuntu and Debian systems:
UBUNTU
DEBIAN
This should add the Repository to the list and include the proper parameters, such as Ubuntu or Debian as well as the codename for the release (lsb_release -cs).
Now that we've added a new Repository, we need to get its list by updating all the lists:
With everything updated from the Repository, we can now get the proper files to install Docker. The following command should install what we need:
Now that Docker is installed, this also means that the 'docker' group has been created. We need to add the current user to the group, or if needed, you'll need to add another user to the 'docker' group:
We need to make sure the Docker service will start after the reboot:
Before we reboot the system to make sure the group changes have taken effect and any services, we can finish installing the rest of the requirements.
We need 'flatpak' to install the last software requirement:
Once we install 'flatpak', we need to add the 'flathub' repository for it:
Now that the 'flathub' repository is ready, we can install the 'FreeRDP' app for accessing our Docker instance:
Now, you can reboot the system, and when it restarts back in the Graphical User Interface (GUI), we can continue on with the installation of WinBoat itself.
Fedora
As usual with any distro before installing new software, we need to update the Repository list and any available packages. So, do the following:
We then need to install some necessary files and add the Docker Repository:
Next, we need to install the Docker packages:
For any prompts that come up, enter 'y' to accept to install the packages.
CentOS
We need to update the repository list and the system, as well as add a few dependencies:
Next, we need to add the Docker Repository:
Before we continue, if you have not set up a subscription, you will get a subscription error. You can fix this by creating an account on Red Hat, or we can disable the subscription check. To do this, you need to edit the file '/etc/dnf/plugins/subscription-manager.conf'. In the file is a line that is 'enabled=1' and needs to be changed to 'enabled=0'.
Now, we can install the Docker packages with the command:
Be sure to answer 'y' to any prompt that comes up.
There is one dependency that CentOS needs for WinBoat. To get it, we need the 'EPEL-Release Repository' and then install the dependency:
The rest can be done for both systems.
Fedora/CentOS
Now, we need to enable the Docker service to start at boot and start the service now:
We need to add the current user to the Docker group, or if needed, add the required user to the group:
We need to add the 'FreeRDP' app to use to access the Docker image of our Windows system:
Reboot the system, and then we can install the WinBoat app after the system restarts.
Arch Linux
As usual, the first thing is to update the Repository list:
After the update, you can install 'Docker' as well as 'git', which we need soon.
Now, you need to start and enable the 'Docker' service to start at next boot:
You will need to add your user account to the 'Docker' group, or another account if you like:
We then need to install 'flatpak' and the 'FreeRDP' app:
Unlike the other operating systems, do not reboot at this time; you need to make the package to install it, then you can reboot.
WinBoat Installation
Now that all the dependencies are out of the way, we should be able to install WinBoat with no issues.
Open a web browser of your choice and go to 'https://www.winboat.app/'. If you scroll down, there should be a section allowing you to download WinBoat, shown in Figure 1, for:
FIGURE 1
Choose your OS type and download the file for your distro.
After it is downloaded, you need to open a terminal to the location of the downloaded file.
For Ubuntu/Debian, you need to use the following command to install it:
For CentOS/Fedora, use the command:
The '<package-name>' will depend o the version number that is available when you download it.
For Arch, it is a little trickier, but not bad. We previously installed 'git', so we need to download the binary package. In a terminal, switch to the 'Downloads' folder, or another if you like. Run the following command to download the package you will need to build:
This should download the file and place it in the current folder. Now the file should be in the sub-folder 'winboat-bin'. Change into the folder with 'cd winboat-bin'. Once inside the folder, there should be a single file. This file we will build and install, so use the command:
The files should be built and installed. You need to reboot, and the program 'WinBoat' will be on the menu to run.
Everything should be installed now, so we can go through the WinBoat setup that occurs the first time you run it.
WinBoat Setup
When you first run 'WinBoat', you will need to configure the program. After the program starts for the first time, you will see a window similar to Figure 2.
FIGURE 2
Select 'Next' to start the setup.
The next screen, Figure 3, is the 'License Agreement'. Look through it if you want, and then click on 'I Agree'.
FIGURE 3
Figure 4 is where the program will check the system to determine that the dependencies are all met. Figure 4 shows that some are not met. If this is the case, you need to fix the options with the 'X' and restart the program. If you do not restart the program, it will not re-detect the dependencies.
FIGURE 4
Once everything is all green checkmarks, then the 'Next' button will be active and let you click it to continue. On most of these, you can click on 'How?' to give you information about fixing the issue. Click on 'Next' when you have everything installed as needed.
The next thing we will do is set the installation location, in Figure 5. This is the location where the Virtual Machine will be created and stored. As it says, you need at least 32 GB of space available at this storage location. In a bit, you will be asked to set a size for the storage unit to be used. The minimum is 32 GB, so if you want more space, then make sure it is available. Set a location and click on 'Next'.
FIGURE 5
Next, we will specify the version of Windows, set the language and point to the location of an ISO file for the version of Windows we want to install, as shown in Figure 6. Be aware that you do not need to use an ISO file, and it is best not to use one.
FIGURE 6
The versions of Windows that are available to use in the Virtual System are:
On the next screen, you will set up a user account and password. The program should detect your username on Linux and fill it in for the username. Figure 7 shows the screen that you need to fill in and then click on 'Next' when done.
FIGURE 7
The next screen, Figure 8, shows the hardware we will allocate to the virtual system. Here, you can set the number of CPU cores, RAM and disk size. Be sure not to max out any of the hardware so you still have some resources left for the Host Linux system. When done, click 'Next'.
FIGURE 8
For the next screen, we have the option to share your Linux Home folders with Windows. Figure 9 shows the screen and the warnings. If you get a file that has a virus or malware, you can place this on your Host system.
FIGURE 9
Make your selection and click on 'Next'.
The next screen is simply a review of all the settings you have made for 'WinBoat'.
After verifying your choices, click on 'Install' and the installation will start. Once the installation is complete, there will appear a button labeled 'Finish'. Click on the button to continue to the last screen.
The last screen is the 'WinBoat' screen, as shown in Figure 10.
FIGURE 10
Shown in Figure 10 is the resources being used by the virtual Windows system. Here, you can stop or pause the Docker image.
There are other options to the right:
FIGURE 11
After double-clicking on an item, the app should start.
For the 'Configuration' option, as shown in Figure 12, you can change settings for the virtual system.
FIGURE 12
The 'About' option is information about 'WinBoat'.
Conclusion
Using 'WinBoat' is an alternative to WINE, but you will need to perform some tweaking to get the audio to pass through to the Host system.
This is a very nice way to run Windows and be able to run Windows apps in Linux. The start-up is a very fast process compared to running Windows natively.
Try it and see how you like it.
Some people will run a virtualized Windows system inside Linux and make it work that way.
WinBoat is another such virtualized system that runs on Docker. This method has a few more alternatives and seems faster.
In this article, I can help you get WinBoat set up, and we will do this as if your system is a newly installed system so that we can go over setting everything up from scratch.
I will go over setting this up in the following operating systems:
- Ubuntu/Debian
- Fedora/CentOS
- Arch Linux
Hardware-wise, you need over 4 GB of RAM, two CPU cores, 32 GB of free drive space (after the installation of WinBoat) and the system must support KVM (virtualization). The rest of the requirements are software and configuration based.
Ubuntu/Debian
For Ubuntu and Debian, the installation is basically the same, with just a few changes between the two.
To start, we need to update the existing packages and the repository list. Once these are done, we need to install a few required packages:
Code:
sudo apt update
sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Next, we need the encryption keys for Docker:
Code:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Then, we need the Repository added to our Repository list. Here, there is a difference between the Ubuntu and Debian systems:
UBUNTU
Code:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
DEBIAN
Code:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
This should add the Repository to the list and include the proper parameters, such as Ubuntu or Debian as well as the codename for the release (lsb_release -cs).
Now that we've added a new Repository, we need to get its list by updating all the lists:
Code:
sudo apt update
With everything updated from the Repository, we can now get the proper files to install Docker. The following command should install what we need:
Code:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Now that Docker is installed, this also means that the 'docker' group has been created. We need to add the current user to the group, or if needed, you'll need to add another user to the 'docker' group:
Code:
sudo usermod -aG docker ${USER}
We need to make sure the Docker service will start after the reboot:
Code:
sudo systemctl enable docker
Before we reboot the system to make sure the group changes have taken effect and any services, we can finish installing the rest of the requirements.
We need 'flatpak' to install the last software requirement:
Code:
sudo yum install flatpak -y
Once we install 'flatpak', we need to add the 'flathub' repository for it:
Code:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Now that the 'flathub' repository is ready, we can install the 'FreeRDP' app for accessing our Docker instance:
Code:
flatpak install com.freerdp.FreeRDP
Now, you can reboot the system, and when it restarts back in the Graphical User Interface (GUI), we can continue on with the installation of WinBoat itself.
Fedora
As usual with any distro before installing new software, we need to update the Repository list and any available packages. So, do the following:
Code:
sudo yum update -y
We then need to install some necessary files and add the Docker Repository:
Code:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager addrepo --from-repofile=https:// download.docker.com/linux/fedora/docker-ce.repo
Next, we need to install the Docker packages:
Code:
sudo dnf install docker-ce docker-ce-cli containerd.io
For any prompts that come up, enter 'y' to accept to install the packages.
CentOS
We need to update the repository list and the system, as well as add a few dependencies:
Code:
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Next, we need to add the Docker Repository:
Code:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Before we continue, if you have not set up a subscription, you will get a subscription error. You can fix this by creating an account on Red Hat, or we can disable the subscription check. To do this, you need to edit the file '/etc/dnf/plugins/subscription-manager.conf'. In the file is a line that is 'enabled=1' and needs to be changed to 'enabled=0'.
Now, we can install the Docker packages with the command:
Code:
sudo dnf install docker-ce docker-ce-cli containerd.io
Be sure to answer 'y' to any prompt that comes up.
There is one dependency that CentOS needs for WinBoat. To get it, we need the 'EPEL-Release Repository' and then install the dependency:
Code:
sudo dnf install epel-release
sudo dnf install libXScrnSaver
The rest can be done for both systems.
Fedora/CentOS
Now, we need to enable the Docker service to start at boot and start the service now:
Code:
sudo systemctl start docker
sudo systemctl enable docker
We need to add the current user to the Docker group, or if needed, add the required user to the group:
Code:
sudo usermod -aG docker ${USER}
We need to add the 'FreeRDP' app to use to access the Docker image of our Windows system:
Code:
sudo yum install flatpak -y
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.freerdp.FreeRDP
Reboot the system, and then we can install the WinBoat app after the system restarts.
Arch Linux
As usual, the first thing is to update the Repository list:
Code:
sudo pacman -Syu
After the update, you can install 'Docker' as well as 'git', which we need soon.
Code:
sudo pacman -S docker git
Now, you need to start and enable the 'Docker' service to start at next boot:
Code:
sudo systemctl start docker
sudo systemctl enable docker
You will need to add your user account to the 'Docker' group, or another account if you like:
Code:
sudo usermod -aG docker ${USER}
We then need to install 'flatpak' and the 'FreeRDP' app:
Code:
sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.freerdp.FreeRDP
Unlike the other operating systems, do not reboot at this time; you need to make the package to install it, then you can reboot.
WinBoat Installation
Now that all the dependencies are out of the way, we should be able to install WinBoat with no issues.
Open a web browser of your choice and go to 'https://www.winboat.app/'. If you scroll down, there should be a section allowing you to download WinBoat, shown in Figure 1, for:
- AppImage
- Debian
- Fedora
- Arch
FIGURE 1
Choose your OS type and download the file for your distro.
After it is downloaded, you need to open a terminal to the location of the downloaded file.
For Ubuntu/Debian, you need to use the following command to install it:
Code:
sudo dpkg -i <package-name.deb>
For CentOS/Fedora, use the command:
Code:
sudo dnf install <package-name.rpm>
The '<package-name>' will depend o the version number that is available when you download it.
For Arch, it is a little trickier, but not bad. We previously installed 'git', so we need to download the binary package. In a terminal, switch to the 'Downloads' folder, or another if you like. Run the following command to download the package you will need to build:
Code:
sudo git clone https://aur.archlinux.org/winboat-bin.git
This should download the file and place it in the current folder. Now the file should be in the sub-folder 'winboat-bin'. Change into the folder with 'cd winboat-bin'. Once inside the folder, there should be a single file. This file we will build and install, so use the command:
Code:
sudo mkpkg -si
The files should be built and installed. You need to reboot, and the program 'WinBoat' will be on the menu to run.
Everything should be installed now, so we can go through the WinBoat setup that occurs the first time you run it.
WinBoat Setup
When you first run 'WinBoat', you will need to configure the program. After the program starts for the first time, you will see a window similar to Figure 2.
FIGURE 2
Select 'Next' to start the setup.
The next screen, Figure 3, is the 'License Agreement'. Look through it if you want, and then click on 'I Agree'.
FIGURE 3
Figure 4 is where the program will check the system to determine that the dependencies are all met. Figure 4 shows that some are not met. If this is the case, you need to fix the options with the 'X' and restart the program. If you do not restart the program, it will not re-detect the dependencies.
FIGURE 4
Once everything is all green checkmarks, then the 'Next' button will be active and let you click it to continue. On most of these, you can click on 'How?' to give you information about fixing the issue. Click on 'Next' when you have everything installed as needed.
The next thing we will do is set the installation location, in Figure 5. This is the location where the Virtual Machine will be created and stored. As it says, you need at least 32 GB of space available at this storage location. In a bit, you will be asked to set a size for the storage unit to be used. The minimum is 32 GB, so if you want more space, then make sure it is available. Set a location and click on 'Next'.
FIGURE 5
Next, we will specify the version of Windows, set the language and point to the location of an ISO file for the version of Windows we want to install, as shown in Figure 6. Be aware that you do not need to use an ISO file, and it is best not to use one.
FIGURE 6
The versions of Windows that are available to use in the Virtual System are:
- Windows 10 Pro
- Windows 11 Pro
- Windows 11 LTSC 2024
- Windows 11 Enterprise
- Windows 10 LTSC 2021
- Windows 10 Enterprise
On the next screen, you will set up a user account and password. The program should detect your username on Linux and fill it in for the username. Figure 7 shows the screen that you need to fill in and then click on 'Next' when done.
FIGURE 7
The next screen, Figure 8, shows the hardware we will allocate to the virtual system. Here, you can set the number of CPU cores, RAM and disk size. Be sure not to max out any of the hardware so you still have some resources left for the Host Linux system. When done, click 'Next'.
FIGURE 8
For the next screen, we have the option to share your Linux Home folders with Windows. Figure 9 shows the screen and the warnings. If you get a file that has a virus or malware, you can place this on your Host system.
FIGURE 9
Make your selection and click on 'Next'.
The next screen is simply a review of all the settings you have made for 'WinBoat'.
After verifying your choices, click on 'Install' and the installation will start. Once the installation is complete, there will appear a button labeled 'Finish'. Click on the button to continue to the last screen.
The last screen is the 'WinBoat' screen, as shown in Figure 10.
FIGURE 10
Shown in Figure 10 is the resources being used by the virtual Windows system. Here, you can stop or pause the Docker image.
There are other options to the right:
- Apps
- Configuration
- About
FIGURE 11
After double-clicking on an item, the app should start.
For the 'Configuration' option, as shown in Figure 12, you can change settings for the virtual system.
FIGURE 12
The 'About' option is information about 'WinBoat'.
Conclusion
Using 'WinBoat' is an alternative to WINE, but you will need to perform some tweaking to get the audio to pass through to the Host system.
This is a very nice way to run Windows and be able to run Windows apps in Linux. The start-up is a very fast process compared to running Windows natively.
Try it and see how you like it.

