Affected Roles: System Owner • System Administrator
Related Nx VMS Apps: Nx Server
What is Docker?
Docker is a set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers.
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.
Container images become containers at runtime and in the case of Docker containers - images become containers when they run on Docker Engine.
Available for both Linux and Windows-based applications, containerized software will always run the same, regardless of the infrastructure. Containers isolate software from its environment and ensure that it works uniformly despite differences for instance between development and staging.
What are the benefits of using the Nx Server in Docker?
Over the past few years, Docker has become more and more popular in enterprise environments because it makes the IT infrastructure more flexible, robust and manageable.
Docker lets you run a lot of software and services in individual safe containers on the same hardware. Docker containers are easy to configure, update and manage, and they unify the way all software components of the infrastructure work in the organization.
Deploying Nx Server in Docker environment lets you manage your video system the same way you manage all other components of the IT infrastructure -- potentially lowering ongoing support costs for an organization.
There are also additional capabilities available when using Nx Server in Docker:
- Troubleshoot and test more efficiently by running multiple servers, or using different server versions concurrently on the same machine.
- Automate scalability: Docker allows for the creation of scripts to speed up server setup and deployment in large systems.
- Run the Nx Server on macOS in a light-weight way without a full virtual machine.
- Test integrations with Nx Servers by creating a multi-server system on a single computer
- Isolate specific servers to debug camera issues without affecting production systems.
Nx Server Docker Support (Experimental)
The Nx Server application can be run in a Docker container, but support for Docker is limited at the moment due to it being an experimental feature. Some things to keep in mind:
- Docker has not been comprehensively tested and is not recommended for critical systems. You will need to do your own testing to ensure that all features work in your environment before using it.
- If you run into issues with Docker we cannot guarantee that we will support your deployment given the complexities of running software in Docker.
- Any support provided implies knowledge and skills of Docker when using this feature. As we gather your feedback we'll try to address as many discovered issues in future releases.
Nx / Docker Compatibility
Starting with our v4.0 release, the Nx Server Ubuntu package can be installed directly from a Dockerfile (lower versions are incompatible). Keep in mind that only Ubuntu Linux containers are experimentally supported. Some things to consider as you decide whether or not to use Docker:
- Ubuntu Linux hosts have been tested and are supported.
- MacOS hosts can be used but with known networking limitations.
- Windows hosts have not yet been tested.
How to Download the Nx Server Docker Image
You can download the package from our open source repository found here. We strongly recommend only users who have a good understanding of Docker to take advantage of the Nx Docker image.