Docker image for OoklaServer. Examples of how to use this image are included for Docker Compose, Docker Run, and a basic Helm Install (see Ookla Helm Repository for more information).
| Volume | Description |
|---|---|
| /opt/ooklaserver/data | Volume for OoklaServer configuration data and CA bundle. |
| /opt/ooklaserver/certs | Volume for OoklaServer server certificate and private key. |
| Variable | Description | Default |
|---|---|---|
| OOKLASERVER_USER | OoklaServer user | ooklaserver |
| OOKLASERVER_GROUP | OoklaServer group | ooklaserver |
| PROPERTIES_FILE | OoklaServer properties file | OoklaServer.properties |
| File | Volume | Description |
|---|---|---|
| OoklaServer Properties File | /opt/ooklaserver/data | To include your own properties file rather than Helm Chart values.yaml, include the file in the volume mount reference in the docker run as PROPERTIES_FILE=OoklaServer.properties. |
| CA Certificates | /opt/ooklaserver/data | To include your CA certificates, include the file in the volume mount and reference in the properties file as openSSL.server.caBundle = /opt/ooklaserver/data/<your-ca-bundle>. |
| Server Certificate | /opt/ooklaserver/certs | To include your certificate, include the file in the volume mount and reference in the properties file as openSSL.server.certificateFile = /opt/ooklaserver/certs/<your-cert>. |
| Server Private Key | /opt/ooklaserver/certs | To include your private key, include the file in the volume mount and reference in the properties file as openSSL.server.privateKeyFile = /opt/ooklaserver/certs/<your-key>. |
The container is configured to use the host network mode. This is to ensure that the container has direct access to the network interfaces on the host. This is recommended for high performance and low latency tests.
Containerized deployments should be performed on bare metal installations of Linux. Explicitly, we do not support running OoklaServer on Docker instances on non-Linux based operating systems such as Windows or MacOS due to these relying on an intermediary Linux virtual machine layer that is used to host the containers.
Docker containers have several networking driver types to deploy with. Some of these are not as performant as others. Performant choices are usually one of the following:
Avoid bridge or overlay network drivers. If NAT is unavoidable, be sure to allocate sufficient resources so that the NAT operations do not occur on the same core as the Speedtests, if possible. NATing on another platform entirely is usually best, such as a firewall layer. (Avoiding any operations other than Speedtest on the active cores in a system generally lowers latency. Even small amounts of latency will magnify substantial differences at high speeds.)
While it is possible to run OoklaServer in a virtual environment, it is not recommended to do so when measuring high bandwidth connections if bare metal or container deployments are available.
If virtualization is a requirement, know that high speed tests often require an additional layer of tuning which is usually “fairly heavy” due to the required complete allocation of virtualized resources in order to maintain low latency. That is to say, one should dedicate 100% of the core resources allocated to the OoklaServer Virtual Machine such that no other virtual machine can run on those cores. These may be under a control called something such as CPU and Memory reservation, or resource allocation. It may also be required to configure PCIe pass through NICs to the OoklaServer virtual machine in order to achieve the desired performance and latency.
services:
ooklaserver:
image: ookla/ooklaserver:latest
container_name: ooklaserver
restart: unless-stopped
volumes:
- ${PWD}:/opt/ooklaserver/data
- ${PWD}:/opt/ooklaserver/certs
environment:
# All environment variables are optional
# OoklaServer user and group
OOKLASERVER_USER: ooklaserver
OOKLASERVER_GROUP: ooklaserver
# Properties file configuration
# Default is Ookla provided default
PROPERTIES_FILE: OoklaServer.properties
network_mode: host
volumes:
ooklaserver_config:
ooklaserver_certs:
docker run -d \
--name ooklaserver \
-v $(pwd):/opt/ooklaserver/data \
-v $(pwd):/opt/ooklaserver/certs \
-e OOKLASERVER_USER=ooklaserver \ # Optional
-e OOKLASERVER_GROUP=ooklaserver \ # Optional
-e PROPERTIES_FILE=OoklaServer.properties \ # Optional
--network host \
ookla/ooklaserver:latest
Helm charts are available in the Ookla Helm Repository.
To install OoklaServer using the default values, run the following command:
helm upgrade --install ooklaserver .
For more information on using Helm, see the Helm Documentation and the OoklaServer Helm Repository README.
Content type
Image
Digest
sha256:a135d7fa1…
Size
14.4 MB
Last updated
about 1 month ago
docker pull ookla/ooklaserver