Cross-platform Docker installation scripts that automate the complete setup process including all prerequisites, dependencies, and post-installation configuration.
- π Automatic OS/distribution detection
- π¦ Dependency installation
- π³ Docker installation (Engine or Desktop)
- βοΈ Post-installation configuration
- β Installation verification
- π Detailed logging
- π¨ Colorful CLI output with emoji
- πͺ WSL2 installation and configuration
- π₯οΈ Hyper-V enablement verification
- π³ Docker Desktop via Winget
- π Automatic reboot handling
- π§ Multi-distro support (Ubuntu, Debian, Fedora, CentOS, Arch)
- π§ Official Docker repository setup
- π¨ Docker Compose installation
- π₯ User group configuration
- πΊ Homebrew integration
- π Apple Silicon (ARM64) support
- π§ Rosetta 2 installation
- π₯οΈ Docker Desktop via Homebrew Cask
# Full installation (Administrator required)
.\scripts\windows\Install-Docker.ps1
# Skip WSL2 configuration
.\scripts\windows\Install-Docker.ps1 -SkipWSL
# Skip Hyper-V check
.\scripts\windows\Install-Docker.ps1 -SkipHyperV
# Only check prerequisites
.\scripts\windows\Install-Docker.ps1 -SkipDocker
# Show help
.\scripts\windows\Install-Docker.ps1 -HelpParameters:
-SkipWSL- Skip WSL2 installation/configuration-SkipHyperV- Skip Hyper-V verification-SkipDocker- Skip Docker Desktop installation-Help/-h/-?- Display help information
# Make executable (first time only)
chmod +x scripts/linux/install-docker.sh
# Full installation (sudo required)
sudo ./scripts/linux/install-docker.sh
# Skip Docker Compose
sudo ./scripts/linux/install-docker.sh --skip-compose
# Skip user group configuration
sudo ./scripts/linux/install-docker.sh --skip-user-group
# Show help
./scripts/linux/install-docker.sh --helpOptions:
--skip-compose- Skip Docker Compose installation--skip-user-group- Skip adding user to docker group-h,--help- Display help information
# Make executable (first time only)
chmod +x scripts/macos/install-docker.zsh
# Full installation
./scripts/macos/install-docker.zsh
# Skip Homebrew check
./scripts/macos/install-docker.zsh --skip-homebrew
# Skip Rosetta 2 (Apple Silicon only)
./scripts/macos/install-docker.zsh --skip-rosetta
# Show help
./scripts/macos/install-docker.zsh --helpOptions:
--skip-homebrew- Skip Homebrew installation check--skip-rosetta- Skip Rosetta 2 installation (Apple Silicon)-h,--help- Display help information
- OS: Windows 10 version 2004+ (Build 19041) or Windows 11
- Edition: Pro, Enterprise, or Education (Home supported via WSL2 only)
- Privileges: Administrator
- Features: WSL2, Hyper-V (enabled by script)
- Optional: Winget (for automated installation)
- Distributions: Ubuntu, Debian, Fedora, CentOS, RHEL, Arch Linux
- Privileges: Root/sudo
- Kernel: 3.10+ (4.0+ recommended)
- Internet: Required for package downloads
- Version: macOS 11.0 (Big Sur) or later
- Privileges: Administrator
- Processor: Intel or Apple Silicon
- Internet: Required for Homebrew and Docker Desktop
- WSL2 (if not present)
- Windows Subsystem for Linux
- Virtual Machine Platform
- WSL2 kernel update
- Hyper-V (Pro/Enterprise only)
- Hyper-V platform
- Hyper-V management tools
- Docker Desktop
- Docker Engine
- Docker Compose
- Docker CLI
- Kubernetes (optional)
- Prerequisites
- ca-certificates
- curl, gnupg
- apt-transport-https (Debian/Ubuntu)
- Repository management tools
- Docker Engine
- Docker CE (Community Edition)
- containerd
- Docker CLI
- Docker Compose
- Docker Compose plugin or standalone
- Docker Buildx
- Build enhancement plugin
- Homebrew (if not present)
- macOS package manager
- Rosetta 2 (Apple Silicon only)
- x86 compatibility layer
- Docker Desktop
- Docker Engine
- Docker Compose
- Docker CLI
- Kubernetes (optional)
All scripts are idempotent and can be run multiple times safely:
- Detects existing installations
- Skips already-configured components
- Updates existing installations when appropriate
- No duplicate installations or conflicts
After installation completes:
-
Verify Installation
docker --version docker compose version
-
Test Docker
docker run hello-world
-
Check Status
docker info
- Reboot may be required for WSL2/Hyper-V
- Start Docker Desktop from Start Menu
- Complete initial setup wizard
- Configure resources in Docker Desktop settings
- Log out and back in for group permissions
- Service starts automatically
- Configure daemon:
/etc/docker/daemon.json
- Docker Desktop starts automatically
- Access from menu bar icon
- Configure resources in Docker Desktop preferences
- Grant necessary permissions when prompted
# Complete installation with all prerequisites
.\scripts\windows\Install-Docker.ps1
# System will prompt for reboot if needed
# After reboot, start Docker Desktop from Start Menu# Full installation with Compose and user group
sudo ./scripts/linux/install-docker.sh
# Log out and back in
# Verify without sudo
docker run hello-world# Install everything including Rosetta 2
./scripts/macos/install-docker.zsh
# Wait for Docker Desktop to initialize
# Start using Docker# Minimal installation without user group
sudo ./scripts/linux/install-docker.sh --skip-user-group
# Docker commands will require sudo
sudo docker run hello-worldWSL2 installation fails:
- Enable virtualization in BIOS/UEFI
- Check Windows version (requires 2004+)
- Run:
wsl --installmanually
Hyper-V conflicts:
- Disable other virtualization software (VirtualBox, VMware)
- Check:
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Docker Desktop won't start:
- Check WSL2 is running:
wsl --status - Restart Docker Desktop
- Check logs:
%LOCALAPPDATA%\Docker\log.txt
Repository setup fails:
- Check internet connection
- Verify distribution is supported
- Update package lists:
sudo apt update/sudo dnf update
Permission denied:
- Add user to docker group:
sudo usermod -aG docker $USER - Log out and back in
- Or use sudo for docker commands
Service won't start:
- Check status:
sudo systemctl status docker - View logs:
sudo journalctl -u docker - Restart:
sudo systemctl restart docker
Homebrew installation fails:
- Install manually: https://brew.sh
- Check Xcode Command Line Tools:
xcode-select --install
Docker Desktop won't start:
- Check macOS version (requires 11.0+)
- Grant necessary permissions in System Preferences
- Check logs:
~/Library/Containers/com.docker.docker/Data/log
Rosetta 2 issues (Apple Silicon):
- Install manually:
softwareupdate --install-rosetta - Required for x86 container support
- Scripts require elevated privileges
- Official Docker repositories used
- No credentials stored or transmitted
- Logs stored in temporary directories
- HTTPS used for all downloads
- Docker Documentation
- Docker Desktop for Windows
- Docker Engine for Linux
- Docker Desktop for Mac
- WSL2 Documentation
- Homebrew
- v1.0 - Initial release with cross-platform support
Author: PowerScripts
License: MIT
Repository: PowerScripts