To check the version of Python you have, use the following command:
```bash
python3 --version
```
### Docker (version 20.10.0 or greater)
[Docker](https://docs.docker.com/get-started/overview/) is an open-source platform for developing, shipping, and running applications. It enables you to separate your
applications from your infrastructure, so you can deliver software quickly using OS-level virtualization. It helps
deliver software in packages called Containers.
To check the version of Docker you have, use the following command.
```commandline
docker --version
```
If you need to install Docker, please visit [Get Docker](https://docs.docker.com/get-docker/).
- Install [Docker for Windows](https://www.docker.com/products/docker-desktop)
- Once installed, please follow the steps [here](https://docs.docker.com/desktop/windows/wsl/) and complete all the pre-requisites for a seamless installation and deployment.
- After completion of the pre-requisites, please install `python3-pip` and `python3-venv` on your Ubuntu system.
- Command: `apt install python3-pip python3-venv` (Ensure that you have the priviledge to install packages, if not, please use Super User.)
## Procedure
### 1. Create a directory for OpenMetadata
Create a new directory for OpenMetadata and navigate into that directory.
```bash
mkdir openmetadata-docker && cd openmetadata-docker
```
### 2. Create a Python virtual environment
Create a virtual environment to avoid conflicts with other Python environments on your host system.
A virtual environment is a self-contained directory tree that contains a Python installation for a particular version
of Python, plus a number of additional packages.
In a later step you will install the `openmetadata-ingestion` Python module and its dependencies in this virtual environment.
```bash
python3 -m venv env
```
### 3. Activate the virtual environment
```bash
source env/bin/activate
```
### 4. Upgrade pip and setuptools
```bash
pip3 install --upgrade pip setuptools
```
### 5. Install the OpenMetadata Python module using pip
This will start all the necessary components locally. You can validate that all containers are up
and running with `docker ps`.
```commandline
❯ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
470cc8149826 openmetadata/server:0.11.0 "./openmetadata-star…" 45 seconds ago Up 43 seconds 3306/tcp, 9200/tcp, 9300/tcp, 0.0.0.0:8585-8586->8585-8586/tcp openmetadata_server
63578aacbff5 openmetadata/ingestion:0.11.0 "./ingestion_depende…" 45 seconds ago Up 43 seconds 0.0.0.0:8080->8080/tcp openmetadata_ingestion
9f5ee8334f4b docker.elastic.co/elasticsearch/elasticsearch:7.10.2 "/tini -- /usr/local…" 45 seconds ago Up 44 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp openmetadata_elasticsearch
08947ab3424b openmetadata/db:0.11.0 "/entrypoint.sh mysq…" 45 seconds ago Up 44 seconds (healthy) 3306/tcp, 33060-33061/tcp openmetadata_mysql
```
In a few seconds, you should be able to access the OpenMetadata UI at [http://localhost:8585](http://localhost:8585):
### Network openmetadata_app_net Error
You might see something like:
```
The docker command executed was `/usr/local/bin/docker compose --file /var/folders/bl/rm5dhdf127ngm4rr40hvhbq40000gn/T/docker-compose.yml --project-name openmetadata up --detach`.
It returned with code 1
The content of stdout can be found above the stacktrace (it wasn't captured).
The content of stderr is 'Network openmetadata_app_net Creating
Network openmetadata_app_net Error
failed to create network openmetadata_app_net: Error response from daemon: Pool overlaps with other one on this address space
```
A common solution is to run `docker network prune`:
```
WARNING! This will remove all custom networks not used by at least one container.
```
So be careful if you want to keep up some (unused) networks from your laptop.
You can connect Docker containers to communicate with Host Operating System Services. Navigate to the [official docker documentation](https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host) which will help achieve the same.