acheck / stevedore

Docker distribution for Windows that Just Works

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stevedore

Build Status Download Chocolatey package

Overview

This project aims to be a frictionless Docker distribution for Windows.

Stevedore can be used as a replacement for DockerMsftProvider, Docker Desktop or Mirantis Container Runtime.

Windows Containers are fully supported.

Linux Containers support is in experimental mode.

Supported OSes

  • Windows 10, 11

  • Windows Server 2016, 2019, 2022 (no Linux containers due to lack of WSL2)

Installation

Chocolatey

Stevedore is available via Chocolatey package manager. If you already have Chocolatey installed, you can just run the following command from elevated console:

choco install stevedore

Note that reboot is required before you can use docker commands.

WinGet

Planned, but not available yet.

Manual

  1. Download MSI installer

  2. Double-click on it

  3. Next-next-next

  4. 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.

  5. Profit! docker command is now available on your PATH and dockerd service is already running.

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
  • FeatureWindowsContainers installs Windows Containers support, including Stevedore service. It allows running containers with process isolation.

  • FeatureHyperV installs Hyper-V support. It allows running containers with Hyper-V isolation.

  • FeatureLinuxContainers installs Linux Containers support.

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 installed

  • /SERVICENAME=stevedore specifies Windows service name

When installing Stevedore via Chocolatey, use this syntax: choco install stevedore --install-arguments="/ADDLOCAL=Feature1,Feature2,Feature3 /PROPERTY=value /quiet"

Bundled components

  • Docker Engine 20.10.12

  • Docker App 0.9.1-beta3

  • Buildx 0.7.1

  • Docker Compose 2.2.3

  • Docker Scan 0.17.0

Usage

After installation and reboot, docker command should be available on PATH and ready to use.

Just try docker run hello-world from a command line.

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 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 under %ProgramData%\Docker directory.

Experimental Linux Containers support

In order to try Linux Containers support, you first need to enable "Linux Containers (Experimental)" feature in Stevedore installer.

Warning
Do NOT enable Windows and Linux Containers simultaneously. Currently, both of them bind to the same Windows named pipe, so they would conflict when run at the same time.

After installing Stevedore, you need to reboot and install Linux kernel update package for WSL2.

Finally, run Stevedore app using desktop shortcut or start menu.

If everything was done properly, you’ll be able to use docker command to work with Linux containers.

Current limitations:
  • WSL2 image, that Stevedore uses to run Docker, doesn’t update when you update Stevedore. #25

  • It is impossible to update WSL2 image without wiping all images/containers. #24

  • You cannot run Windows and Linux Containers at the same time. #29

See it in action:

Desktop_220214_1355.mp4

Building from source

  1. Install Rust

  2. Install WiX Toolset either manually or by running choco install wixtoolset if you have Chocolatey

  3. Clone Stevedore Git repository

  4. Run cargo install cargo-wix to install cargo-wix

  5. Run cargo wix --nocapture in repository root. Ready-to-use MSI package will be built in <repo>/target/wix directory.

About

Docker distribution for Windows that Just Works

License:Apache License 2.0


Languages

Language:Rust 90.8%Language:PowerShell 9.2%