Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/container-desktop/container-desktop
Provides an alternative for Docker for Desktop on Windows using WSL2.
https://github.com/container-desktop/container-desktop
container-desktop docker docker-compose wsl2
Last synced: about 2 months ago
JSON representation
Provides an alternative for Docker for Desktop on Windows using WSL2.
- Host: GitHub
- URL: https://github.com/container-desktop/container-desktop
- Owner: container-desktop
- License: mit
- Created: 2021-09-21T11:56:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-24T12:58:05.000Z (6 months ago)
- Last Synced: 2024-08-02T16:52:05.422Z (5 months ago)
- Topics: container-desktop, docker, docker-compose, wsl2
- Language: C#
- Homepage: https://container-desktop.io
- Size: 4.57 MB
- Stars: 148
- Watchers: 4
- Forks: 12
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![](https://img.shields.io/github/v/release/container-desktop/container-desktop?label=%20&style=for-the-badge&logo=github)](https://github.com/container-desktop/container-desktop/releases/latest)
# Container Desktop
Container Desktop is an open-source alternative to Docker Desktop. It enables you to build, push, pull and run Linux containers on Microsoft Windows, by providing a seamless integration with Docker Engine Community Edition running on Windows Subsystem for Linux. The Container Desktop bundles the open-source docker and docker-compose cli clients for a native and simple user experience.
## How it works?
![](docs/static/img/container-desktop-overview.png)
Container Desktop Proxy handles the communication with the Docker Engine running in container-desktop distribution within Windows System Linux v2 (WSL2). The proxy enables native docker experience on Microsoft Windows, where it translates Windows Paths to WSL2 paths local to the container-desktop distribution.
With the Container Desktop System Tray Application you can manage the behavior of container-desktop. You can start, stop and restart the Container Desktop Proxy on the Windows Host or Enable or Disable a Docker Engine proxy in any available WSL2 distribution.
Container Desktop installs the docker and the docker-compose command line interface tools.> Note: Container Desktop will not support Windows Containers.
## Supported features
* Run Docker daemon in its own distribution
* Use 'docker' and 'docker-compose' cli on Windows and enabled WSL2 Distributions to connect to the daemon.
* You can use Windows paths as volumes, the container-desktop-proxy translates these paths to WSL2 paths local to the daemon distribution
* Start/stop/restart and quit Container Desktop by right clicking on the icon in the system tray.
* Enable container-desktop integration in installed WSL2 distributions.
* Use Port Forwarding to expose containers on a specific network.
* Configure DNS Mode for Container Desktop (WLS2/Primary Network Adapter/Static).## Installation
**System requirements**
Container Desktop requires WLS2 which is supported on these Windows versions:
* Microsoft Windows 10, Version 1903 with Build 18362.1049 or higher
* Microsoft Windows 10, Version 1909 with Build 18363.1049 or higher
* Microsoft Windows 10, Version 2004 or higher (20H2,21H1, 21H2, ..)
* Microsoft Windows 11, any version or build**Installation Steps**
1. If you currently have docker-desktop installed, you need to **quit** *"Docker Desktop"*.
2. Download the latest [Release](https://github.com/container-desktop/container-desktop/releases)
3. (optional) Validate the file checksum with the values in sha256sum.txt```powershell
Get-FileHash .\ContainerDesktopInstaller.exe -Algorithm SHA256
```3. StartContainerDesktopInstaller.exe and click install to start the installation.
> Note: Windows Defender SmartScreen may pop-up and prevent StartContainerDesktopInstaller.exe from starting. When this is the case do the following: please select "More Info" and Select "Run Anyway".
## Build
**Pre-requisites**
* Microsoft Windows with Powershell
* [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
* Docker (either container-desktop or docker-for-desktop)**Build**
1. Clone this repo 'git clone '
2. Inside the container-desktop folder run '.\build.ps1'## Credits
Container Desktop is made possible by using the following great projects:
* [Command Line Parser Library](https://github.com/commandlineparser/commandline)
* [Docker.DotNet](https://github.com/dotnet/Docker.DotNet)
* [Hardcodet NotifyIcon for WPF](https://github.com/hardcodet/wpf-notifyicon)
* [Managed DismApi Wrapper](https://github.com/jeffkl/ManagedDism)
* [ModernWPF UI Library](https://github.com/Kinnara/ModernWpf)
* [Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning)
* [Json.NET](https://www.newtonsoft.com/json)
* [P/Invoke](https://github.com/dotnet/pinvoke)
* [Serilog](https://serilog.net/)
* [System.IO.Abstractions](https://github.com/System-IO-Abstractions/System.IO.Abstractions)
* [Reactive Extensions](https://github.com/dotnet/reactive)
* [CompareNetObject](https://github.com/GregFinzer/Compare-Net-Objects)
* [AvalonEdit](https://github.com/icsharpcode/AvalonEdit)
* [NuGet.Versioning](https://github.com/NuGet/Home)
* [Docker CLI](https://github.com/docker/cli)
* [Docker Compose CLI](https://github.com/docker/compose-cli)
* [The Moby Project](https://github.com/moby/moby)
* [go-dnsmasq](https://github.com/janeczku/go-dnsmasq)