# Docker and Docker Compose Setup Guide This guide will help you install Docker and Docker Compose on various operating systems. ## Linux ### Ubuntu/Debian ```bash # Update package index sudo apt-get update # Install prerequisites sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release # Add Docker's official GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Set up the stable repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker Engine sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # Add your user to the docker group sudo usermod -aG docker $USER # Apply new group membership (or logout and login) newgrp docker # Verify installation docker --version docker compose version ``` ### Fedora/CentOS/RHEL ```bash # Install prerequisites sudo dnf -y install dnf-plugins-core # Add Docker repository sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo # Install Docker sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # Start Docker sudo systemctl start docker sudo systemctl enable docker # Add your user to the docker group sudo usermod -aG docker $USER # Verify installation docker --version docker compose version ``` ### Arch Linux ```bash # Install Docker sudo pacman -S docker docker-compose # Start Docker service sudo systemctl start docker sudo systemctl enable docker # Add your user to the docker group sudo usermod -aG docker $USER # Verify installation docker --version docker compose version ``` ## macOS ### Using Homebrew ```bash # Install Docker Desktop brew install --cask docker # Start Docker Desktop from Applications # Or use: open -a Docker # Verify installation docker --version docker compose version ``` ### Manual Installation 1. Download Docker Desktop for Mac from [https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop) 2. Open the `.dmg` file and drag Docker to Applications 3. Launch Docker from Applications 4. Docker icon will appear in the menu bar when running ## Windows ### Using WSL2 (Recommended) 1. Enable WSL2: ```powershell wsl --install ``` 2. Download and install Docker Desktop for Windows from [https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop) 3. During installation, ensure "Use WSL 2 instead of Hyper-V" is selected 4. After installation, open Docker Desktop settings: - Go to Settings > General - Ensure "Use the WSL 2 based engine" is checked - Go to Settings > Resources > WSL Integration - Enable integration with your WSL distributions 5. Verify installation in WSL: ```bash docker --version docker compose version ``` ## Verification After installation, verify Docker is working: ```bash # Check Docker version docker --version # Check Docker Compose version docker compose version # Run a test container docker run hello-world # Check Docker is running docker ps ``` ## Post-Installation Steps ### Linux: Run Docker without sudo ```bash # Create docker group (usually already exists) sudo groupadd docker # Add your user to docker group sudo usermod -aG docker $USER # Apply changes newgrp docker # Verify docker run hello-world ``` ### Configure Docker to start on boot ```bash # Linux (systemd) sudo systemctl enable docker # Check status sudo systemctl status docker ``` ## Troubleshooting ### Permission Denied Error If you get "permission denied" when running Docker: ```bash # Make sure your user is in the docker group groups $USER # If docker is not listed: sudo usermod -aG docker $USER newgrp docker ``` ### Docker Daemon Not Running ```bash # Linux sudo systemctl start docker sudo systemctl status docker # If it fails to start, check logs: sudo journalctl -u docker.service ``` ### Docker Compose Command Not Found If `docker compose` doesn't work but `docker-compose` does: ```bash # Install Docker Compose plugin sudo apt-get install docker-compose-plugin # Or use docker-compose (standalone) sudo apt-get install docker-compose ``` Buque supports both `docker compose` (V2) and `docker-compose` (V1). ## Resources - [Docker Documentation](https://docs.docker.com/) - [Docker Compose Documentation](https://docs.docker.com/compose/) - [Docker Desktop](https://www.docker.com/products/docker-desktop) - [WSL2 Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install) ## Next Steps Once Docker is installed, you can: 1. Install Buque: ```bash cd buque ./install.sh ``` 2. Initialize Buque: ```bash buque init ``` 3. Start managing your containers: ```bash buque env add myapp /path/to/myapp buque up myapp ```