Re-work Sketch's Docker setup.

We were being fancy and creating Dockerfiles for folks. This sometimes
worked, but quite often didn't.

Instead, we you have -base-image and -force-rebuild-container, and the
"cache key" for images is just the base image and the working dir.

The layer cake is

  (base image)
  (customization) [optional]
  (repo) [/app]
diff --git a/dockerimg/README.md b/dockerimg/README.md
new file mode 100644
index 0000000..38572f9
--- /dev/null
+++ b/dockerimg/README.md
@@ -0,0 +1,53 @@
+# Docker Containers
+
+## Why!?!
+
+To support multiple Sketch sessions in parallel, and to give the sessions
+isolation, each Sketch session runs in its own container. (At the end of the
+day, the output of a Sketch session is new git commit(s).)
+
+## Customization
+
+*Customizing Sketch's containers*
+
+By default, Sketch uses a Docker container generated by
+[https://github.com/boldsoftware/sketch/blob/main/dockerimg/Dockerfile.base](https://github.com/boldsoftware/sketch/blob/main/dockerimg/Dockerfile.base)
+and published to
+[https://github.com/boldsoftware/sketch/pkgs/container/sketch](https://github.com/boldsoftware/sketch/pkgs/container/sketch).
+This container is based on Ubuntu 24.04 and contains many popular tools. Sketch
+will install additional tools as it needs.
+
+Locally, Sketch creates a container image based on the default that includes
+your working tree. This image is cached (identified by a container label that
+is a hash of your working tree directory and the base image id) to speed up
+starting up Sketch. (Future invocations do a "git reset" inside the image, but
+don't need to copy over the whole git repo.) You can force re-creation with the
+`-force-rebuild-container` flag.
+
+If you'd like to customize the container, specify `-base-image` and
+point Sketch to an image you've built. We recommend layering your customizations
+on top of our base image, but this is not strictly necessary. Sketch will then
+add your repo on top of it, at runtime.
+
+![Docker Container Visualization](docker.svg)
+
+For example, if you want to add Node 22, you might create a Dockerfile
+like below, and build it with `docker build -t sketch-with-node-22 - < Dockerfile.sketch`,
+and pass it to sketch with `-base-image sketch-with-node-22`.
+
+```dockerfile
+FROM ghcr.io/boldsoftware/sketch:latest
+
+RUN apt-get update && \
+    apt-get install -y curl && \
+    curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
+    apt-get install -y nodejs && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists/*
+```
+
+## Troubleshooting
+
+"no space left on device"
+
+`docker system prune -a` removes stopped containers and unused images, which usually frees up significant disk space.