Docker is an open source software platform for setting up and running applications in packaged environments called containers. This virtualization at the operating system level enables you to run an application as a single, predictable package.

Docker Desktop for Windows is a native Windows application designed to run Docker containers on Windows systems.

See the Docker documentation for more detailed description and instructions on getting started with Docker on Windows.

You must set up your PC workstation to use Docker:

Requirements

  • A 64-bit Windows 10 machine with WSL 2 and Internet connection.

  • 8 GB of RAM.

  • 8 CPU cores.

  • 250 GB of free disk space. SSDs are highly recommended for faster build times.

1. Install and set up Docker Desktop

Make sure you have already installed the Windows Subsystem for Linux v2 (WSL 2) before running Docker Desktop.
  1. Download the Docker Desktop for Windows installer from the Docker Web site, and install it.

  2. After you finish installing Docker Desktop, reboot for the new configuration to take effect.

2. Docker image for Digi Embedded Yocto

Digi Embedded Yocto provides a fully configured and ready to use Docker image based on an Ubuntu 18.04 Linux distribution. Follow these steps in your Windows machine to download and run the Digi Embedded Yocto Docker image:

2.1. Download Docker image

Run a Windows PowerShell

PS C:\> docker pull digidotcom/dey:dey-3.2-r3

2.2. Create and start a new Docker container

Create and start a new Docker container based on the Docker image for Digi Embedded Yocto:

PS C:\> docker run -it --name dey-3.2-container
                       --volume <HOST_PATH_TO_WORKSPACE>:/home/dey/workspace
                       digidotcom/dey:dey-3.2-r3

Arguments in this command:

  • -it (short for -i -t) allocates a pseudo-TTY console to operate the container.

  • --name assigns the name dey-3.2-container to the new container.

Command prompts inside a Docker container follow the format <username>@<container_id>. username is the default user name inside the container, and container_id represents the unique container ID assigned by Docker during container creation.

Your Docker container with the name dey-3.2-container starts automatically and is ready to use.

+------------------------------------------------------------------------------------+
|                                                                                    |
|                                                                                    |
|                   Welcome to Digi Embedded Yocto Docker container                  |
|                                                                                    |
|  This Docker image is a ready to use system based on Digi Embedded Yocto (DEY) to  |
|  build custom images for the Digi platforms. DEY is an open source and freely      |
|  available Yocto Project (TM) based embedded Linux distribution.                   |
|                                                                                    |
|                                                                                    |
+------------------------------------------------------------------------------------+

Do you wish to create a new platform project [Y/N]?
Press Y to create a new project, or N to get to the prompt in the container.

2.3. Update the container

2.3.1. Update repo tool in the container

The repo tool that Yocto uses to manage the different repositories may not be up to date. Run the following commands in the container to get the latest version:

dey@b53778495448: sudo curl -o /usr/local/bin/repo http://commondatastorage.googleapis.com/git-repo-downloads/repo
dey@b53778495448: sudo chmod a+x /usr/local/bin/repo
Root password is dey.

2.3.2. Update Digi Embedded Yocto in the container

The container has Digi Embedded Yocto installed in /usr/local/dey-3.2. The installed version is the last release that was available when the Docker image was created, which may not be up to date. To update Digi Embedded Yocto:

dey@b53778495448: cd /usr/local/dey-3.2/
dey@b53778495448: repo init -b gatesgarth
dey@b53778495448: repo sync -j 4

Useful Docker commands

Start a stopped container
PS C:\> docker start -ia 'dey-3.2-container'
List all Docker containers (running or stopped)
PS C:\> docker ps --all
See the Docker documentation for more commands and instructions.