--- title: Docker Deployment slug: /deployment/docker --- # Docker Deployment Deploying OpenMetadata in Docker is a great start! Take a look at our [Quickstart](/quick-start/local-deployment) guide to learn how to get OpenMetadata up and running locally in less than 7 minutes! If those steps are already done, you might want to bind Named Volumes for data persistence. Learn how to do so [here](/deployment/docker/volumes). To test out your security integration, check out how to [Enable Security](/deployment/docker/security). ## Changing ports This docker deployment is powered by `docker compose`, and uses the `docker-compose.yml` files shipped during each release [example](https://github.com/open-metadata/OpenMetadata/releases/tag/0.11.4-release). As with the [Named Volumes](/deployment/docker/volumes), you might want to tune a bit the compose file to modify the default ports. We are shipping the OpenMetadata server and UI at `8585`, and the ingestion container (Airflow) at `8080`. You can take a look at the official Docker [docs](https://docs.docker.com/compose/compose-file/#ports). As an example, You could update the ports to serve Airflow at `1234` with: ```yaml ports: - "1234:8080" ``` ## Run OpenMetadata with AWS Services If you are running OpenMetadata in AWS, it is recommended to use [Amazon RDS](https://docs.aws.amazon.com/rds/index.html) and [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/?id=docs_gateway). We support - Amazon RDS (MySQL) engine version upto 8.0.29 - Amazon OpenSearch (ElasticSearch) engine version upto 7.1 or Amazon OpenSearch engine version upto 1.3 - Amazon RDS (PostgreSQL) engine version upto 14.2-R1 For Production Systems, we recommend Amazon RDS to be in Multiple Availibility Zones. For Amazon OpenSearch (or ElasticSearch) Service, we recommend Multiple Availibility Zones with minimum 3 Master Nodes. Once you have the RDS and OpenSearch Services Setup, you can update the environment variables below for OpenMetadata Docker Compose backed systems to connect with Database and ElasticSearch. ``` # MySQL Environment Variables DB_DRIVER_CLASS='com.mysql.cj.jdbc.Driver' DB_SCHEME='mysql' DB_USE_SSL='true' MYSQL_USER_PASSWORD='' DB_SCHEME='mysql' MYSQL_HOST='' MYSQL_USER='' MYSQL_DATABASE='' MYSQL_PORT='' # ElasticSearch Environment Variables ELASTICSEARCH_SOCKET_TIMEOUT_SECS='60' ELASTICSEARCH_USER='' ELASTICSEARCH_CONNECTION_TIMEOUT_SECS='5' ELASTICSEARCH_PORT='443' ELASTICSEARCH_SCHEME='https' ELASTICSEARCH_BATCH_SIZE='10' ELASTICSEARCH_HOST='vpc-..es.amazonaws.com' ELASTICSEARCH_PASSWORD='' ``` Replace the environment variables values with the RDS and OpenSearch Service ones and then provide this environment variable file as part of docker compose command. ``` docker compose --env-file ./config/.env.prod up -d openmetadata_server ``` # Production Deployment If you are planning on going to PROD, we also recommend taking a look at the following deployment strategies: Deploy OpenMetadata directly using the binaries. Deploy and scale with Kubernetes