This is the step-by-step process I took to create the Docker image.

Create a directory just to save the file:

$ mkdir ~/Docker
$ cd ~/Docker

Install Docker case you don’t have it yet and give permission to your user:

$ sudo apt  install
$ sudo usermod -aG docker ${USER}

Log out and log in again to get into this docker group, or alternatively:

$ su ${USER}

Create the Dockerfile with the instructions to install the needed files:

$ vi Dockerfile
# Ubuntu as parent file
FROM ubuntu

# Update the image to the latest packages
RUN apt-get update && apt-get upgrade -y

# Install needed tools
RUN apt-get install automake bison build-essential flex gcc-arm-none-eabi gperf git libncurses5-dev libtool libusb-dev libusb-1.0.0-dev pkg-config kconfig-frontends genromfs zlib1g-dev -y

# Create how nuttxspace
WORKDIR /nuttxspace

#clone needed files:
RUN git clone /nuttxspace/nuttx
RUN git clone /nuttxspace/apps

Built it:

$ docker build .

Verify if it was created correctly:

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
<none>       <none>    f0a673f5538d   About a minute ago   3.9GB
ubuntu       latest    6b7dfa7e8fdb   6 weeks ago          77.8MB

Tag the image:

$ docker tag f0a673f5538d acassis/ubuntu-nuttx

Run the image:

$ docker run -it acassis/ubuntu-nuttx /bin/bash

If everything worked fine, you could wish to submit it to Docker hub

So, re-tag the image with a version number to submit:

$ docker tag acassis/ubuntu-nuttx acassis/ubuntu-nuttx:v1

Login in the docker:

$ docker login

Send the docker image:

$ docker push acassis/ubuntu-nuttx:v1

Everything done!

If for some reason you want to remove your local image:

$ docker rmi -f f0a673f5538d