Docker is a specialized software platform designed to simplify the process of building, running, and managing applications by using containers. Unlike traditional virtual machines that require a full operating system for each instance, Docker containers share the host's operating system kernel, making them lightweight, efficient, and highly portable across different computing environments.
For more in-depth technical information, you can visit the official Docker Documentation.
In the context of the YNX1000 controller, Docker is fundamental to the functionality of the Autonomous Control Unit (ACU). The ACU is a high-performance computing component built into the robot controller, featuring advanced CPU and GPU resources to handle complex processing tasks.
Docker contributes to the ACU function in the following ways:
Encapsulation:
It packages ACU applications—which may include complex logic for Machine Vision, AI, or Robot Control—into standardized image files.
Environment Consistency:
By using a Dockerfile, developers ensure that the application has all the necessary dependencies and configurations to run reliably on the ACU hardware without any required network connection.
Building & Deployment:
Developers can utilize the ACU SDK scripts or standalone Docker commands to build their Docker images. Deployment of these images is performed using the ACU System Manager, allowing for easy installation, executation and management on the ACU.
To develop and deploy applications for the ACU using Docker, several requirements must be met:
A Linux PC (typically running Ubuntu 20.04) is recommended for the development environment. Key software dependencies include:
Docker Engine:
Must be installed to use the docker command suite.
ACU SDK:
Provides the necessary cross-compilation environment and toolchains for the ACU's architecture.
Every user application must include specific files to be compatible with the ACU's Docker-based deployment:
Dockerfile:
A text document containing the instructions to build the application image.
Project.json:
A metadata file used to define the application's configuration and properties.
Base Image:
Developers are recommended to load the official ACU Docker base image (e.g., base_image_for_acu-*.tar) provided by YASKAWA into their local Docker environment.
Using Alternative Docker Images:
Alternative base images are allowed as part of the Dockerfile.
For example:# Use an official Python runtime as a parent image FROM python:3.9-slim # Set the working directory in the container WORKDIR /app ...Just be aware that these images must support
arm64platform architecture. As well as any application binary must also be compiled forarm64.
While the ACU development workflow is natively designed for a Linux environment (specifically Ubuntu 20.04), some developers may attempt to use Docker Desktop on Windows via the Windows Subsystem for Linux (WSL2).
It is important to understand the following constraints and risks associated with this setup:
The ACU SDK and its associated cross-compilation toolchains are validated and supported exclusively for native Linux environments. YASKAWA does not provide technical support or troubleshooting for issues arising from the use of Docker Desktop on Windows. The provided scripts for building and packaging ACU applications are bash-based and intended for a standard Linux file system.
Choosing to develop on Windows is done at the sole risk of the developer. Potential issues include:
File System Compatibility:
Differences in permissions and line endings (LF vs. CRLF) between Windows and Linux can cause the Docker build process to fail or result in corrupted application packages.
Network Configuration:
Docker Desktop handles networking through a virtualized bridge that may interfere with the specific communication protocols required to deploy or debug applications on the physical ACU hardware.
Architecture Mismatches:
Ensuring that the Docker Desktop engine is correctly targeting the arm64 architecture required by the ACU can be more complex on a Windows-hosted environment.
For a stable and supported development experience, it is highly recommended to use a dedicated Linux workstation or a persistent Linux virtual machine.
| ⬅️ Previous | Next ➡️ | |
|---|---|---|
| What is the ACU? | What is gRPC? |