diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..ab40bee7b148c606c519a425b810704c92691b29
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,4 @@
+.*
+node_modules
+npm-debug.log
+*.sublime-project
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..0a03541a99355e1902a76547e2b0b550e21a1bb2
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,40 @@
+# This is to build a container that demos the Molstar Canvas prototype
+# Source material: https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
+# Source material: https://derickbailey.com/2017/05/31/how-a-650mb-node-js-image-for-docker-uses-less-space-than-a-50mb-image/
+# Source material: https://hub.docker.com/_/node/
+
+# Use the slimed NodeJS source, yielding a space savings of 600MB (~66% of total)
+FROM node:alpine
+
+# Create app directory
+WORKDIR /usr/src/app
+
+# Install app dependencies
+# A wildcard is used to ensure both package.json AND package-lock.json AND tslint.json AND tsconfig.json are copied
+# where available (npm@5+)
+COPY *.json ./
+
+# Install all dependencies and copy results
+RUN npm install
+COPY . .
+
+# Build application and bundle results
+RUN npm run build
+COPY build/ build/
+
+# Build Canvas application and bundle results
+RUN npm run build-canvas
+COPY build/ build/
+
+# Open ports for HTTP
+EXPOSE 8080/tcp
+
+# Setup standalone simple webserver to run the demo
+RUN npm install http-server -g
+
+# Start NodeJS at container stand up
+CMD [ "http-server", "build/canvas/", "-p", "8080" ]
+
+# Developer helpers (what is inside this container?)
+RUN node -v
+RUN ls -alh
diff --git a/README.md b/README.md
index 97489da489920b579a693ca4c8305ce75fb33e23..dde6fcb355b95f304ca7a3e1635e5a69eb83aa57 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,19 @@ From the root of the project:
 
 and navigate to `build/viewer`
 
+
+**Run via Docker**
+
+Build the docker image
+
+    docker build -t molstar-proto .
+
+Run the image
+
+    docker run -p 8080:8080 molstar-proto
+
+
+
 ### Code generation
 **CIF schemas**