My general experience has been that Docker tends to be an intermediate-to-advanced topic that depends on a solid understanding of Linux shell scripting fundamentals.
If I was going to teach programming, I’d probably have them start writing simple Python scripts, and avoid the massive complications of installation, privileges, storage configuration, port mappings, and overall isolation that Docker brings.
GitHub is good for storing source code, and is a reasonable thing to include in a programming introduction. A Docker image is a pretty opaque binary; you want to remember how you built it (the
Dockerfile), not the image itself. A container proper is not permanent at all and gets deleted and recreated, not built.