While Docker is a familiar software for developers, you don't need to have coding experience to use Docker Desktop on Windows. In fact, I've been using the platform for months now without having coding skills.

However, using the software without familiarity with coding languages has drawbacks. While I'm glad I chose Docker Desktop to begin my self-hosting journey, I've learned quite a few things about using the platform without the skill set of a developer.

You can get started with many apps without coding experience

A few Docker commands make it easy to get started

When I first started using Docker Desktop, it was a bit intimidating at first. However, I was able to set up Docker Desktop on Windows without much effort, and by the end of the day, I had multiple containers running. These included Wallos (for tracking subscriptions), Node-RED, and NocoDB.

This was thanks to each app's instructions on how to pull the container image and start running it in Docker. In fact, I didn't need to understand the complexities of the Docker Engine or more than a few simple commands. Wallos, for example, included everything I needed in text that I could copy and paste to my terminal.

Using Docker Compose is a bit more complicated

You'll need to expand your skills for multi-container instances

Docker Compose allows you to host multi-container apps, which you'll need for apps that rely on things like databases. This is because multiple, linked containers allow you to define the application from a single YAML file.

Using Docker Compose will require you to be able to navigate to a certain folder on your computer using a command terminal, edit configuration files, and use the docker compose up -d command to start up your containers. Luckily, plenty of apps provide detailed information when it comes to executing the relevant commands and describing which configuration fields to edit.

As a result, I am able to self-host Dawarich, Immich, PhotoPrism, and Firefly III. But there was the occasional trouble along the way...

Troubleshooting becomes more difficult

You might need help from actual coders

Even though you can get multiple containers running easily in Docker without coding experience, things get a bit more complicated when it comes to troubleshooting. If you don't have coding experience, it may be difficult to figure out what's going on in your container when things aren't working right. While you can easily access your logs in Docker Desktop, it becomes more difficult to interpret any errors if you aren't familiar with certain programming languages.

I faced this issue the most with Dawarich. It was through GitHub forums that I was able to isolate the issue, making it impossible for me to import data into the app. I could fix this issue by creating a Python script to split my JSON file into smaller parts, but I couldn't create one myself, and the script provided by other users did not work for me.

Eventually, I was able to solve this issue with the help of a coworker who wrote a useful script to split my data into smaller parts. But on my own, this would have been a dead end.

No coding skills will limit which apps you can host

Eventually, you'll come across significant hurdles

While many apps feature user-friendly front-ends that allow you to configure settings, as well as tutorials that explain how to set them up in the first place, you'll also find that there are many apps that do require an understanding of various coding languages.

For example, when I wanted to try out Authelia, my lack of coding experience proved to be an insurmountable hurdle. This is because the configuration for Authelia requires more than just changing a few lines or fields.

Meanwhile, while I was able to get my Huginn container running, my lack of coding skills meant that I couldn't actually edit and create new automations effectively.

As a result, my coding knowledge limits the exact apps I can host, but not to the extent that I thought it would when I first started out. That said, the more you use Docker, the more you'll find opportunities where coding experience would be beneficial.

You can use Docker without coding skills, but there will be limitations

My ability to use Docker to self-host apps like Dawarich, Immich, and Firefly III proves that you don't need coding skills to use the platform. However, as I've expanded my library of self-hosted services, I've encountered multiple hurdles that prevent me from fully utilizing the platform.

I do plan on eventually learning more about coding through self-guided learning platforms, but I also want to pace myself due to a busy schedule and limited energy. In the meantime, I have friends and coworkers who help me with simple troubleshooting, and forum posts continue to be an essential source of information.

Docker