tutorials vrx_docker_orientation - osrf/vrx GitHub Wiki
- 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.
- 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.
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.
- 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 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 |
---|