How to Install and Use Docker on Windows 11

a white and blue square object on a white background

This comprehensive guide walks you through installing Docker Desktop on Windows 11, setting up WSL 2, and managing your projects effectively.

Prerequisites

  • Windows 11 64-bit (Home or Pro edition)
  • Administrator access to your computer
  • Virtualization enabled in BIOS (we’ll verify this)

Step 1: Verify Virtualization is Enabled

Before installing Docker, check if virtualization is enabled on your system.

Quick Method – Task Manager

  1. Right-click on the taskbar and select Task Manager (or press Ctrl + Shift + Esc)
  2. Click on the Performance tab
  3. Click on CPU in the left panel
  4. Look at the bottom right for “Virtualization: Enabled”

If it shows “Disabled”, you’ll need to enable it in BIOS:

  1. Restart your computer
  2. Enter BIOS (usually by pressing F2, F10, Del, or Esc during startup)
  3. Find virtualization settings under Advanced, CPU Configuration, or Security:
    • Intel processors: Look for “Intel VT-x” or “Intel Virtualization Technology”
    • AMD processors: Look for “AMD-V” or “SVM Mode”
  4. Enable it and save changes
  5. Restart your computer

Step 2: Install WSL 2 and Ubuntu

Docker Desktop on Windows requires WSL 2 (Windows Subsystem for Linux).

Install WSL and Ubuntu

  1. Open PowerShell as Administrator:
    • Right-click Start menu ? Terminal (Admin) or Windows PowerShell (Admin)
  2. Run the installation command: wsl --install This installs WSL 2 and Ubuntu by default.
  3. Restart your computer when prompted
  4. After restart, Ubuntu will automatically open:
    • Create a username (can be different from your Windows username)
    • Create a password (characters won’t appear as you type – this is normal)
    • Remember this password – you’ll need it for admin tasks

Verify WSL Installation

Open PowerShell and run:

wsl --list --verbose

You should see Ubuntu listed with VERSION 2.

Step 3: Install Docker Desktop

Download and Install

  1. Go to https://www.docker.com/products/docker-desktop
  2. Download Docker Desktop for Windows
  3. Run the installer
  4. When prompted, choose “Use WSL 2 instead of Hyper-V” (recommended)
  5. Complete the installation
  6. Restart your computer

Start Docker Desktop

  1. Launch Docker Desktop from the Start menu
  2. Wait for it to start (you’ll see a whale icon in the system tray)
  3. Accept the terms and conditions if prompted

Verify Docker Installation

Open PowerShell or Command Prompt and run:

docker --version
docker run hello-world

If you see a “Hello from Docker!” message, Docker is working correctly!

Step 4: Configure Docker with WSL

Enable WSL Integration

  1. Open Docker Desktop
  2. Click the gear icon (Settings)
  3. Go to Resources ? WSL Integration
  4. Enable “Enable integration with my default WSL distro”
  5. Toggle on your Ubuntu distribution
  6. Click Apply & Restart

Now Docker will work from both Windows and Ubuntu terminals!

Step 5: Choose Where to Store Your Projects

You have two options for project location:

Option A: Keep Projects in Windows (Recommended for Cursor AI Users)

Location: C:\Users\YourUsername\Projects\your-project

Pros:

  • Easy access with Windows tools and IDEs like Cursor AI
  • Familiar file structure
  • Simple drag-and-drop

Access from Docker:

cd C:\Users\YourUsername\Projects\your-project
docker run --rm -v ${PWD}:/app your-image

Option B: Store Projects in WSL Ubuntu

Location: /home/yourusername/projects/your-project (inside Ubuntu)

Pros:

  • Faster Docker performance
  • Native Linux development environment

Access from Windows:

  • In File Explorer, type: \\wsl$\Ubuntu\home\yourusername\projects
  • Bookmark this location for easy access
  • Cursor AI can open projects from this path

Access from Ubuntu Terminal:

cd ~/projects/your-project
docker run --rm -v $(pwd):/app your-image

Working with Git in WSL

If your project is stored in WSL, follow these best practices:

Initial Setup

When you first access a Git repository in WSL from Windows PowerShell, you might see:

fatal: detected dubious ownership in repository

Solution: Always run Git commands from the Ubuntu terminal, not PowerShell.

Set Up SSH for Git

If you’re using SSH for Git (like GitLab or GitHub):

  1. Open Ubuntu terminal
  2. Generate SSH key: ssh-keygen -t ed25519 -C "your_email@example.com" Press Enter to accept defaults
  3. Copy your public key: cat ~/.ssh/id_ed25519.pub
  4. Add the key to your Git hosting service:
    • GitHub: Settings ? SSH and GPG keys ? New SSH key
    • GitLab: User Settings ? SSH Keys
    • Paste your public key and save
  5. Test the connection: # For GitHub ssh -T git@github.com # For GitLab ssh -T git@gitlab.com

Use SSH Agent (If Your Key Has a Passphrase)

To avoid entering your passphrase repeatedly:

# Start SSH agent
eval "$(ssh-agent -s)"

# Add your key
ssh-add ~/.ssh/id_ed25519

Enter your passphrase once – it will be cached for the session.

Make SSH Agent Start Automatically

Edit your bash profile:

nano ~/.bashrc

Add these lines at the end:

# Start SSH agent and add key
if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval "$(ssh-agent -s)" > /dev/null
  ssh-add ~/.ssh/id_rsa 2>/dev/null
fi

Save (Ctrl+X, Y, Enter), then reload:

source ~/.bashrc

Fixing Git Line Ending Issues

If Git shows all files as modified after cloning, it’s likely a line ending issue (Windows uses CRLF, Linux uses LF).

Fix in Ubuntu Terminal

cd ~/your-project

# Configure Git to use Linux line endings
git config core.autocrlf input
git config core.filemode false

# Reset all files with correct line endings
git rm --cached -r .
git reset --hard HEAD

# Verify
git status

Prevent Future Issues

Create a .gitattributes file in your project root:

cat > .gitattributes << 'EOF'
* text=auto eol=lf
*.sh text eol=lf
EOF

git add .gitattributes
git commit -m "Add gitattributes to enforce LF line endings"

Recommended Workflow

For the best experience when using Cursor AI with WSL:

  1. Store projects in Windows (C:\Users\YourUsername\Projects\)
  2. Edit code in Cursor AI (Windows application)
  3. Run Docker commands from either PowerShell or Ubuntu terminal
  4. Run Git commands from Ubuntu terminal
  5. Keep both Cursor AI and Ubuntu terminal open side-by-side

This workflow gives you the best of both worlds: easy editing with Windows tools and proper Linux environment for Docker and Git.

Common Docker Commands

Running Containers

# Run a container
docker run image-name

# Run with port mapping
docker run -p 4000:4000 image-name

# Run with volume mounting
docker run -v ${PWD}:/app image-name

# Run in detached mode
docker run -d image-name

Managing Containers

# List running containers
docker ps

# List all containers
docker ps -a

# Stop a container
docker stop container-id

# Remove a container
docker rm container-id

Managing Images

# List images
docker images

# Remove an image
docker rmi image-name

# Build an image
docker build -t my-image .

Docker Compose

# Start services
docker-compose up

# Start in detached mode
docker-compose up -d

# Stop services
docker-compose down

# View logs
docker-compose logs

Troubleshooting

Docker Desktop Won’t Start

  • Ensure virtualization is enabled in BIOS
  • Check that WSL 2 is properly installed: wsl --list --verbose
  • Restart Docker Desktop
  • Restart your computer

“Cannot connect to Docker daemon”

  • Make sure Docker Desktop is running (check system tray)
  • In Docker Desktop settings, verify WSL integration is enabled

Slow Performance

  • Store projects in WSL filesystem instead of Windows for better performance
  • Allocate more resources to Docker in Settings ? Resources

Git Shows All Files Modified

  • Follow the line ending fix in the “Fixing Git Line Ending Issues” section above

Conclusion

You now have a fully functional Docker development environment on Windows 11! This setup allows you to:

  • Run Docker containers efficiently using WSL 2
  • Use your favorite Windows tools like Cursor AI for development
  • Leverage Linux commands and tools through Ubuntu
  • Manage Git repositories properly with SSH authentication

Happy coding!

Popular Medical Practices Considered Pseudoscience

person holding clear glass ball

Some alternative medical practices, popular globally, lack scientific evidence and are labeled pseudoscience.

Homeopathy

This medical practice uses highly diluted substances to treat symptoms based on “like cures like.” Popular in India, Germany, UK, France, Brazil.
More info: Wikipedia.

Acupuncture

Inserts needles into body points to balance energy for pain relief. Popular in China, US, Europe; used in 103 countries.
More info: Wikipedia.

Chiropractic

Manipulates spine to fix subluxations for health issues. Popular in US, Canada, Australia, Europe.
More info: Wikipedia.

Naturopathy

Employs natural remedies like herbs and diet to aid self-healing. Popular in US, Canada, Germany, Australia; in 98 countries. More info: Wikipedia.

Ayurveda

Balances doshas with herbs, diet, yoga from ancient India. Popular in India, Nepal, Sri Lanka; growing in West. More info: Wikipedia.

Reiki

Channels energy via hands for healing. Popular in US, UK, Australia, Japan; in hospitals.
More info: Wikipedia.

As mentioned in the introduction, these are considered as pseudoscience medical practices. You are free to form your own opinion.

The Brave Web Browser: A Privacy-Focused Alternative

A cell phone sitting on top of a wooden table with the logo of the Brave browser

The Brave web browser, launched in 2016 by Brave Software, is a free, open-source browser built on Chromium, the same engine powering Google Chrome. What sets Brave apart from other browsers is its uncompromising focus on user privacy, speed, and a unique approach to online advertising.

Key Features That Differentiate Brave

  1. Ad and Tracker Blocking: Unlike most browsers that allow third-party trackers to monitor user activity, Brave automatically blocks ads, trackers, and scripts that collect personal data. This results in faster page load times—often 2-4 times quicker than competitors like Chrome or Firefox—and a cleaner browsing experience.
  2. Privacy by Design: Brave uses HTTPS Everywhere to ensure secure connections and prevents fingerprinting, a technique used to identify users based on their device configurations. It also blocks malicious scripts and protects against phishing attempts, offering robust security without the need for extensions.
  3. Brave Rewards and the Basic Attention Token (BAT): Brave reimagines online advertising with its opt-in Brave Rewards program. Users can choose to view privacy-respecting ads and earn BAT, a cryptocurrency, which can be tipped to content creators or redeemed for rewards. This model contrasts with traditional browsers that rely on invasive, data-driven advertising.
  4. Tor Integration: For enhanced anonymity, Brave offers a private browsing mode with built-in Tor support, routing traffic through the Tor network to mask IP addresses. This feature goes beyond the standard incognito modes of other browsers, which don’t obscure your IP from websites.
  5. Cross-Platform Compatibility: Brave is available on Windows, macOS, Linux, iOS, and Android, with seamless sync for bookmarks, themes, and settings. Its Chromium base ensures compatibility with Chrome extensions, making it a versatile alternative.

How Brave Stands Apart

While browsers like Chrome, Firefox, and Safari dominate the market, Brave’s privacy-first philosophy sets it apart. Chrome, for instance, is deeply tied to Google’s data-driven ecosystem, collecting user information for targeted ads. Firefox offers strong privacy features but requires manual configuration or extensions to match Brave’s out-of-the-box protections. Safari, while privacy-focused, is limited to Apple’s ecosystem and lacks Brave’s innovative ad model.

Brave’s commitment to speed is another differentiator. By blocking resource-heavy ads and trackers, it reduces data usage by up to 60%, making it ideal for users with limited bandwidth or slower devices. Its BAT system also empowers users to support creators directly, bypassing middlemen like ad networks.

Focus on Privacy

Brave’s core mission is to give users control over their online experience. It minimizes data collection, storing only essential, anonymized usage statistics. Unlike competitors that profit from user data, Brave’s model incentivizes privacy-respecting ads while allowing users to opt out entirely. Its open-source nature ensures transparency, with the code available for public scrutiny on GitHub.

Conclusion

The Brave browser offers a compelling alternative to traditional browsers by prioritizing privacy, speed, and user empowerment. Its ad-blocking, tracker-free browsing, and innovative rewards system make it a standout choice for those seeking a faster, safer, and more ethical web experience. For privacy-conscious users, Brave is a bold step toward reclaiming control online.

How to Set Filters in Thunderbird: A Simple Guide

email notification on smartphone

Mozilla Thunderbird is a powerful email client that helps you manage your inbox efficiently. One of its most useful features is message filters, which allow you to automatically organize, sort, or take actions on incoming emails based on specific criteria. Whether you want to sort emails into folders, mark them as read, or delete spam, filters can save you time. In this beginner-friendly guide, we’ll walk you through the steps to set up filters in Thunderbird.

Why Use Filters in Thunderbird?

Filters in Thunderbird help you:

  • Automatically move emails to specific folders (e.g., work, personal, or newsletters).
  • Delete or flag unwanted emails like spam.
  • Highlight important messages from specific senders.
  • Keep your inbox organized without manual effort.

Let’s dive into the steps to create and manage filters in Thunderbird.

Step-by-Step Guide to Setting Filters in Thunderbird

Step 1: Open the Filter Settings

  1. Launch Thunderbird on your computer.
  2. Click on the Menu button (three horizontal lines) in the top-right corner.
  3. Hover over Tools in the menu, then select Message Filters from the dropdown.
    • Alternatively, you can go to Tools > Message Filters on Windows or Thunderbird > Preferences > Filters on macOS.

Step 2: Create a New Filter

  1. In the Message Filters window, click the New button to create a new filter.
  2. A new window titled Filter Rules will pop up, where you can define your filter.

Step 3: Name Your Filter

  1. In the Filter Name field, give your filter a descriptive name (e.g., “Work Emails” or “Newsletters”).
    • A clear name helps you identify the filter later.

Step 4: Set Filter Conditions

  1. Under Apply filter when, choose when the filter should run:
    • Getting New Mail: Applies to incoming emails.
    • Manually Run: Allows you to apply the filter manually to existing emails.
    • Check Filter before Junk Classification if you want the filter to run before Thunderbird’s spam detection.
  2. In the Conditions section, define the criteria for the filter. For example:
    • Select From in the first dropdown, then contains, and type a specific email address (e.g., “boss@company.com“).
    • You can add multiple conditions by clicking the + button (e.g., filter emails with specific words in the subject line).
    • Choose whether all conditions (Match all) or any condition (Match any) must be met.

Step 5: Define Filter Actions

  1. In the Perform these actions section, decide what Thunderbird should do with emails that match the conditions. Common actions include:
    • Move Message to: Select a folder to move the email to (e.g., “Work” or “Archive”).
    • Mark As Read: Automatically mark the email as read.
    • Delete Message: Send unwanted emails to the trash.
    • Forward Message to: Forward the email to another address.
  2. Add multiple actions by clicking the + button if needed.

Step 6: Save and Test the Filter

  1. Click OK to save the filter.
  2. Back in the Message Filters window, you’ll see your new filter listed.
  3. To test it, select the filter and click Run Now to apply it to existing emails in your inbox (if you chose “Manually Run”).
  4. New emails will automatically trigger the filter based on your settings.

Tips for Using Filters Effectively

  • Organize Filters: If you have multiple filters, use the Up and Down buttons in the Message Filters window to prioritize their order.
  • Test Your Filters: Run filters on a small set of emails to ensure they work as expected before applying them broadly.
  • Use Specific Conditions: Be precise with conditions (e.g., exact email addresses or keywords) to avoid misfiltering emails.
  • Backup Filters: Go to Tools > Message Filters > Filters for > Export to save your filters as a backup.

Troubleshooting Common Issues

  • Filter Not Working? Check if the conditions are too strict or if the filter is disabled (uncheck the box next to the filter name to enable it).
  • Emails Going to Wrong Folder? Double-check the conditions and actions, and ensure the target folder exists.
  • Too Many Filters? Combine similar filters to simplify your setup.

Conclusion

Setting up filters in Thunderbird is a straightforward way to keep your inbox organized and save time. By automating tasks like sorting, deleting, or forwarding emails, you can focus on what matters most. Try creating a few filters today, and tweak them as needed to fit your workflow!

Do not like Thunderbird and prefer Google apps then may be you can check out this post about Gmail.