Ensure Docker is installed and running on your system. You can verify this by running:
docker info
If you don’t see any server information in the output, make sure Docker is installed correctly and launch the Docker daemon.
Phoenix Version
Our Docker Compose files are pegged to the latest release of Phoenix. If you want to use a different version, you can specify it in the docker-compose.yml file.
Persistent Storage (Optional)
You can configure external disc storage to store your data in a SQLite database
External PostgreSQL (Optional)
You will need to set the PHOENIX_SQL_DATABASE_URL environment variable to the connection string for your postgres instance.
Note: We do only officially support Postgres versions >= 14.
Run a local instance of Arize Phoenix in Docker with 2 commands
Docker
Pull the image you would like to run
docker pull arizephoenix/phoenix
Pick an image you would like to run or simply run the latest:
Note, you should pin the phoenix version for production to the version of phoenix you plan on using. E.x. arizephoenix/phoenix:4.0.0
docker run -p 6006:6006 -p 4317:4317 -i -t arizephoenix/phoenix:latest
See for details on the ports for the container.Navigate to http://localhost:6006 and you should see your local Arize Phoenix
Note that the above simply starts the phoenix server locally. A simple way to make sure your application always has a running phoenix server as a collector is to run the phoenix server as a side car.Here is an example compose.yaml
You can quickly launch Phoenix with a PostGreSQL backend using docker compose.First, ensure that Docker Compose is installed on your machine https://docs.docker.com/compose/install/.Copy the following YAML file into a new file called docker-compose.yml
# docker-compose.ymlservices: phoenix: image: arizephoenix/phoenix:latest # Must be greater than 4.0 version to work depends_on: - db ports: - 6006:6006 # PHOENIX_PORT - 4317:4317 # PHOENIX_GRPC_PORT - 9090:9090 # [Optional] PROMETHEUS PORT IF ENABLED environment: - PHOENIX_SQL_DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres db: image: postgres restart: always environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=postgres ports: - 5432 volumes: - database_data:/var/lib/postgresql/datavolumes: database_data: driver: local
Run docker compose to run phoenix with postgres
docker compose up --build
Note that the above setup is using your local disc as a volume mount to store the postgres data. For production deployments you will have to setup a persistent volume.
You can also run Phoenix using SQLite with a persistent disc attached:
# docker-compose.ymlservices: phoenix: image: arizephoenix/phoenix:latest # Must be greater than 4.0 version to work ports: - 6006:6006 # PHOENIX_PORT - 4317:4317 # PHOENIX_GRPC_PORT - 9090:9090 # [Optional] PROMETHEUS PORT IF ENABLED environment: - PHOENIX_WORKING_DIR=/mnt/data volumes: - phoenix_data:/mnt/data # PHOENIX_WORKING_DIRvolumes: phoenix_data: driver: local