Installing developer tools has become frictionless in today's world of ubiquitous Docker adoption. First thing you'll need to install is Docker Desktop which will let you run each RDBMS in a containerized Docker App.
After Docker is running, installing and running PostgreSQL and MySql can be done with a single command:
Install and run PostgreSQL​
docker run --name postgres -e POSTGRES_PASSWORD=p@55wOrd -p 127.0.0.1:5432:5432 -d postgres
Install and run MySql​
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=p@55wOrd -d mysql:latest
Feel free to update commands to use your preferred strong password instead
Install and run SQL Server​
SQL Server requires more resources than the popular RDBMS's and as it doesn't have a native ARM Docker Image requires a bit more configuration.
First you'll want to ensure you have at least 4GB RAM available to containers from
the Resources Tab in Docker Settings you can open with ⌘,
Apple Silicon​
Our MacBook Air's 24GB RAM configuration defaulted to 7.9 GB, but if you have a lower configuration you'll want to ensure 4GB is available to SQL Server.
If you're running on Apple Silicon you'll want to ensure Use Virtualization Framework and VirtioFS is checked in the General tab which will allow SQL Server AMD64 Image will run on Apple's new Virtualization framework:
After which you'll be able to install and run SQL Server with:
docker run --platform=linux/amd64 --name mssql -e ACCEPT_EULA=1 -e MSSQL_SA_PASSWORD=p@55wOrd -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest
You'll be able to check if all Docker containers are now running by clicking on the Containers tab in Docker Desktop:
lazydocker​
Another great alternative to Docker Desktop for managing Docker Containers is lazydocker which can be installed with:
macOS​
brew install lazydocker
Chocolatey (Windows)​
Using Chocolatey is an easy way to install on Windows:
choco install lazydocker
As lazydocker a Terminal UI it can be run everywhere where there's a Terminal, in local and remote terminals as well as Rider and VS Code's built-in Terminal UIs where you can quickly perform Docker tasks without breaking your development workflow:
DataGrip​
Now we can see they're all running, lets connect to them. You could use the command line tools specific to each database but my preference is to use JetBrains DataGrip which lets you connect and manage any RDBMS from a single Desktop App, including many of the most popular NoSQL data stores.
Connect to all Database connections​
In Database Explorer, click on the +
New Icon to add a new Data Source to Microsoft SQL Server, MySql
and PostgreSQL using the passwords used to run the Docker commands (e.g.p@55wOrd
) and the default user names
for each RDBMS:
- SQL Server:
sa
- MySQL:
root
- PostgreSQL:
postgres
After connecting to all databases you should end up with active connections to all empty databases:
Which you can open a New > Query Console or ⇧⌘L
to start executing generic queries against like SELECT @@VERSION
in SQL Server to display the version of SQL Server that's running:
Creating new Databases with DataGrip​
To do anything interesting you'll need databases, which you can create with New > Database
for SQL Server and
PostgreSQL or New > Schema
in MySQL: