Step-by-Step Guide: Installing Magento 2 with Docker

How to Set Up a Magento2 Development Environment with Docker on Windows or Mac

Docker is a popular platform that allows you to automate the deployment and management of applications within containers. It provides an efficient way to set up development environments by creating isolated containers with specific configurations. In this article, we will guide you through the process of setting up a development environment using Docker on both Windows and Mac operating systems.

Before we begin, make sure you have Docker installed on your machine. You can download Docker for Windows or Mac from the official Docker website and follow the installation instructions specific to your operating system.

Once Docker is successfully installed, you can proceed with the following steps:

Step 1: Create a Docker container Open your preferred terminal or command prompt and enter the following command:

docker container create -ti --name konnectup -p 80:80 -p 22:22 ubuntu:20.04

This command creates a new Docker container named “konnectup” using the Ubuntu 20.04 image. It also maps host ports 80 and 22 to container ports 80 and 22 respectively, allowing access to web services and SSH.

Step 2: Install Nginx Within the terminal or command prompt, execute the following command to install Nginx:

apt-get install nginx

Nginx is a popular web server and reverse proxy that will be used in our development environment.

Step 3: Install Vim To install the Vim text editor, run the following command:

apt-get install -y vim

Vim is a highly configurable text editor that programmers often use for writing and editing code.

Step 4: Install sudo Enter the command below to install the sudo package:

apt-get install -y sudo

Sudo allows users to execute commands with administrative privileges.

Step 5: Install required packages To install necessary packages and dependencies, run the following command:

sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y

This command ensures that the required packages are installed for the subsequent steps.

Step 6: Add PHP repository Execute the following command to add the PHP repository:

sudo add-apt-repository ppa:ondrej/php

This step is necessary to access the latest PHP packages.

Step 7: Install PHP and required extensions Run the following commands to install PHP version 8.2 and its extensions:

sudo apt install php8.2
sudo apt -y install php8.2-fpm
sudo apt -y install php8.2-cli
<... continue installing the remaining PHP extensions as listed in the provided commands ...>

These commands install PHP 8.2 and a comprehensive list of PHP extensions required for most web development projects.

Step 8: Install MariaDB To install the MariaDB database server and client, enter the following command:

apt install mariadb-server mariadb-client -y

MariaDB is a popular open-source relational database management system.

Step 9: Enable MariaDB service To enable the MariaDB service to start automatically on system boot, run the command:

systemctl enable mariadb.service

Enabling the service ensures that MariaDB starts whenever the system boots up.

Step 10: Install Git Execute the following command to install Git:

apt -y install git

Git is a widely used version control system for tracking changes in source code during software development.

Step 11: Install SSH To install the SSH package, run the command:

apt -y install ssh

SSH (Secure Shell) allows secure remote access to the Docker container.

Step 12: Install Elasticsearch Please refer to the link provided for detailed instructions on how to install and configure Elasticsearch on Ubuntu 22.04: Link to Elasticsearch Installation Guide

Step 13: Install Composer Follow the link provided for a quickstart guide on installing Composer 2 on Ubuntu 20.04: Link to Composer Installation Guide

By following these steps, you will have successfully set up a development environment using Docker on your Windows or Mac machine. You can now start developing and testing your applications within the isolated and easily manageable containers provided by Docker. Happy coding!