Skip to content

tutorials vrx_docker_orientation

M1chaelM edited this page Aug 17, 2023 · 11 revisions

Docker Orientation for the VRX Competition

What is Docker?

  • Docker is a tool for creating and managing executable packages called Docker images.
  • You can think of these images as very lightweight virtual machines.
  • Internally, they contain everything needed to run an application in its native environment: the executables, a runtime, libraries, environment variables, configuration files, etc.
  • Because they bring their dependencies and environment with them, Docker images are very portable.
  • A Docker container is a runtime instance of an image.
  • To the end user, a Docker container behaves very like any other executable processes.

To learn more about Docker, see their excellent tutorials and explanations.

Docker and VRX

  • The VRX competition relies on Docker as a component of its automated evaluation system.
  • Essentially, we ask teams to provide their solution in the form of a minimal "virtual-machine-like" file that represents their entire system.
  • We use Docker images instead of virtual machines because they are much smaller and easier to manage, distribute, and automate.

How we run the competition

We evaluate the performance of each team using two Docker images. These are:

  • The "competitor image." This image is provided by the team and represents the system to be evaluated.
  • The VRX Server image. This image is maintained by the VRX Technical team and simulates the VRX task environments.

After we receive all submissions for a phase, we simulate the competition by running each competitor image concurrently with an instance of the VRX Server image. This approach has a number of advantages:

  • Teams have much greater control of their execution environment.
  • Docker creates an abstraction layer between submitted solutions and the host system where they will be evaluated:
    • Teams don't have to know the details of the host system to ensure their software runs correctly.
    • Likewise, the organizers don't have to know the details of the competitor's container environment.

The VRX Server Image

  • All code and documentation for the VRX server image is available in the vrx-docker github repository.
  • Teams are encouraged to build this image locally and run the competition themselves to score their submissions.
  • See the testing tutorial for an explanation of how to do this.

The Competitor Image

  • The competitor image represents a team's platform.
  • This image only needs to run the code necessary to operate the WAMV and complete each task.
  • It does not need to simulate the task itself, as this is handled by the VRX Server Image.
Up: Overview Next: Creating a Competitor Image
Clone this wiki locally