I'm running Docker inside a Linux VM on a Proxmox homelab and have been using it to practice writing Dockerfiles and Compose files. The official guides and labs seemed like a good way to build practical skills, but many of them fail almost immediately, and the later sections of some guides also appear to be broken.
For example, the first command in the "Getting Started with Docker" lab fails with `experimental OCI remote resource is disabled. "COMPOSE_EXPERIMENTAL_OCI_REMOTE" must be set`. Setting that variable allows the command to continue, but then Compose reports: `services.configurator Additional property use_api_socket is not allowed`.
The VM is running Docker Engine 26.1.5 and Docker Compose 2.26.1 on Linux. I'm wondering whether these labs assume Docker Desktop or some other environment that I don't have. Are the materials outdated, or is there a required configuration I'm missing?
I'd also appreciate recommendations for current, hands-on resources that I can run in my own homelab, especially for learning how to write better Dockerfiles and Compose configurations.
2 Answers
A lot of the newer instructional material assumes Docker Desktop, not just Docker Engine on a headless Linux VM. Desktop-specific examples may depend on features such as the Docker socket integration, GUI controls, or experimental Compose functionality. The normal container and image commands should still work on your VM, but you may need to skip Desktop-only steps or replace them with standard `docker` and `docker compose` commands.
The exact Docker and Compose versions, along with the first failing command and its complete error, are important here. Those errors suggest the lab is using newer or experimental Compose features that your installed Compose version does not recognize. The `use_api_socket` field is not accepted by the version you’re running, so this may be a documentation-versus-version mismatch rather than a problem with your VM.
That makes sense. The failure appears on the very first command: enabling `COMPOSE_EXPERIMENTAL_OCI_REMOTE` gets past the first error, but then Compose rejects `use_api_socket` as an unknown service property.

So the main issue may be the environment rather than Proxmox itself. I’ll treat the labs as Desktop-oriented and check each example for features that require Desktop or a newer Compose release.