Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.

An Ubuntu-based docker component with a wide number of Tcl packages ready for use is available here . To run it, make sure you have docker and run the following (perhaps with sudo, depending on your installation and OS):

docker run --rm -it efrecon/tcl

This should give you an interactive Tcl prompt with tclreadline enabled.

To run one of your local script, run something similar to the command below:

docker run -it --rm -v $(pwd):/home:ro -u $(id -u):$(id -g) efrecon/tcl /home/your_script.tcl

Docker also has an API, for an implementation check docker-client. Docker has released (or acquired) three additional and relevant tools:

  • Compose manages sets of components forming an application using a YAML description.
  • Machine creates virtual machines and provides drivers for a large number of cloud providers.
  • Swarm manages clusters of virtual machines and orchestrate components.

Check out machinery for a tool to tighten all these together, again using a YAML description (but now with descriptions for each of the virtual machines that are part of the cluster).

Jeff Smith 2021-03-17: CloudTk uses Docker Images to run Tk applications from this wiki in a Docker Container to provide isolation from the Host OS. Some of the Tk applications from this Wiki are CPU intensive on the $5/month Linode VM I host CloudTk on. So Docker allows you to specify the available CPU resources a container can use

docker run --rm -i --cpus 0.1 -e DISPLAY=$env(DISPLAY) -v /tmp/.X11-unix:/tmp/.X11-unix --net=host gearanimation:1