🚢 Docker distribution for Windows Containers that Just Works
APACHE-2.0 License
= Stevedore Marat Radchenko :slug: slonopotamus/stevedore :uri-project: https://github.com/{slug} :uri-ci: {uri-project}/actions?query=branch%3Amain
image:{uri-project}/workflows/CI/badge.svg?branch=main[Build Status,link={uri-ci}] image:https://img.shields.io/github/release/{slug}.svg[Download,link={uri-project}/releases/latest] image:https://img.shields.io/chocolatey/v/stevedore[Chocolatey package,link=https://community.chocolatey.org/packages/stevedore]
== Overview
This project aims to provide a frictionless Docker experience for Windows Containers.
Stevedore can be used as a replacement for Docker Desktop, DockerMsftProvider
or Mirantis Container Runtime.
Only Windows Containers are supported.
== Bundled components
== Supported OSes
== Installation
=== Manual
. Download {uri-project}/releases/latest[MSI installer]
. Double-click on it
. Next-next-next
. Reboot your computer.
This is needed to finish installation of Windows Containers feature and to add your user to docker-users
group so user can access Docker service.
=== Chocolatey
Stevedore is available via https://community.chocolatey.org/packages/stevedore[Chocolatey] package manager. If you already have Chocolatey installed, you can just run the following command from elevated console:
Then reboot.
=== WinGet
Then reboot.
=== Advanced: Command-line install options
Stevedore installer supports several command-line options that may be handy to configure unattended installations.
Basic usage: msiexec /i c:\path\to\stevedore.msi
.
For quiet (non-interactive) installation add /quiet
option.
If you only want to install specific Stevedore features, use ADDLOCAL=Feature1,Feature2,Feature3
syntax.
.List of available MSI features for ADDLOCAL
FeatureDockerd
installs Docker service.FeatureContainerd
installs containerd service.FeatureBuildkitd
installs BuildKit service.FeatureHyperV
installs Hyper-V support.FeatureWincred
installs docker-credential-wincred.You can also pass custom installation properties to Stevedore installer using PROPERTY=value
syntax.
.List of available MSI properties
INSTALLDIR=%ProgramFiles%\Stevedore
specifies directory where Stevedore executable files will be installedSERVICENAME=stevedore
specifies Windows service nameWhen installing Stevedore via Chocolatey, use this syntax: choco install stevedore --install-arguments="ADDLOCAL=Feature1,Feature2,Feature3 PROPERTY=value /quiet"
== Usage
After installation and reboot, docker
command should be available on PATH and ready to use.
You may try docker run --rm hello-world
from a command line to confirm that everything was set up properly.
In order to communicate with Docker engine, users needs to be in docker-users
group.
Upon installation, Stevedore automatically adds installing user to docker-users
.
If you need other users to also access Docker engine, you will need to add them manually.
You can use https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/add-localgroupmember[Add-LocalGroupMember] PowerShell commandlet for that.
=== Docker Compose
Stevedore installs two flavors of Docker Compose.
You can use Docker Compose V2 via docker compose
command.
You can also use Docker Compose V1 compatibility mode via docker-compose
command.
=== Configuration and data files
Stevedore stores configuration and runtime data files for Windows containers under %ProgramData%\Docker
directory.
[[containerd]] === containerd, buildkitd and nerdctl
Stedevore has experimental support for Dockerless container environment.
To try it, enable containerd and BuildKit features in Stevedore installer.
After installation (and reboot), you should be able to run containers using nerdctl:
NOTE: If you're getting open \\\\.\\pipe\\containerd-containerd: Access is denied."
error, you need to run commands with elevated permissions.
When https://github.com/containerd/containerd/issues/10454[this feature] is implemented, you will be able to use nerdctr
from any user in docker-users
group.
You can use nerdctl build
to build containers.
NOTE: There's an https://github.com/containerd/containerd/issues/10154[issue] with nerdctl build
.
If you get error: code = Unknown desc = write /dev/stdout: The pipe is being closed.
, add --progress=plain
option.
Additionally, ctr
and buildctl
are available on %PATH%
.
== Building from source
. https://www.rust-lang.org/tools/install[Install Rust]
. Install https://wixtoolset.org/releases/https://wixtoolset.org/releases/[WiX Toolset] either manually or by running choco install wixtoolset
if you have https://chocolatey.org/[Chocolatey]
. Install Visual Studio 2019 or 2022.
Enable "Desktop development with {cpp}" workload.
. Clone Stevedore Git repository
. Run cargo install cargo-wix
to install https://github.com/volks73/cargo-wix[cargo-wix]
. Run cargo wix --nocapture
in repository root.
Ready-to-use MSI package will be built in <repo>/target/wix
directory.
[[no-more-linux-containers]] == Where Linux containers support is gone?
Back in summer 2021, when this project was started, there were no known alternatives to Docker Desktop. Container Desktop didn't exist yet, and Rancher Desktop just released initial 0.1.0 release.
Today, things are very different. Rancher Desktop provides both Docker and Kubernetes support, with a very advanced UI. Stevedore is very unlikely to even come closer to Rancher Desktop functionality due to limited developer resources and lack of motivation.
Thus, starting with 0.10.0 release, Stevedore focuses on its primary goal - providing a convenient way to install Docker for Windows containers.
If you want to run Linux containers, consider one of these projects: