Setting Up a Local Development Environment with Docker: Advantages, Installation, and First Container
This article explains the benefits of using Docker for local development, details how Docker Desktop creates a virtualized environment, guides through installing Docker Desktop on Windows (including handling WSL2 kernel and BIOS virtualization issues), and demonstrates running an Nginx container as a first example.
Why Docker Provides These Advantages
Previously, running interesting projects locally required installing many pieces of software. Docker offers a cooler way by providing a virtualized, standardized environment.
No reliance on company resources; the development machine has ample resources and a fully controllable environment.
Standardized images hide installation pitfalls and eliminate random errors during setup.
Virtual environments can be created and discarded at will without messy cleanup.
Image‑based installation lowers the entry barrier, allowing middleware and services to run locally with ease.
It’s simply cool.
How Docker Achieves These Benefits
The principle is straightforward: Docker Desktop runs a virtual machine on the host, and Docker containers run inside that VM. All installation, start‑stop, and configuration actions happen inside the virtual environment, naturally providing the advantages listed above.
Installing the Base Environment
Download Docker Desktop. During installation you may encounter two common issues:
WSL2 Linux Kernel Update Package
Docker Desktop requires a newer WSL kernel versionThis error means you need to update the WSL2 kernel. Download the update package from the official link and install it.
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Virtualization Support in BIOS
Hardware assisted virtualization and data execution protection must be enabled in the BIOSEnable virtualization and DEP in your BIOS settings, then reboot.
Running Your First Container
After installation, Docker Desktop’s home screen is simple and clean. In the Guides section there are three examples; clicking the large “Run” button quickly launches a local service. We will start an Nginx container.
Switch to the Terminal tab to issue commands to the container.
This way of running services feels far more pleasant than manually installing each piece of software.
Remaining Challenges
Although Docker is set up, many issues remain for a fully functional local development environment:
Some commands are missing inside the Nginx container, which hampers debugging.
Mapping local files to the container and managing network ports for multiple dependent services.
For more complex setups, you may need to build custom Dockerfiles to include required resources and services.
These topics will be covered in future articles.
Discussion
How do you set up and manage your local development environment? Feel free to leave a comment.
END
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.