Docker Images with IRIS 2020.3 and ZPM 0.2.4:

intersystemsdc/iris-community:2020.3.0.200.0-zpm

intersystemsdc/iris-community:2020.2.0.204.0-zpm

intersystemsdc/irishealth-community:2020.3.0.200.0-zpm

intersystemsdc/irishealth-community:2020.2.0.204.0-zpm

intersystemsdc/iris-aa-community:2020.3.0AA.331.0-zpm

And to launch IRIS do:

docker run --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/iris-community:2020.3.0.200.0-zpm

docker run --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/iris-community:2020.2.0.204.0-zpm

docker run --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/irishealth-community:2020.3.0.200.0-zpm

docker run --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/irishealth-community:2020.2.0.204.0-zpm

docker run --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/iris-aa-community:2020.3.0AA.331.0-zpm

And for terminal do:

docker exec -it my-iris iris session IRIS

and to start the control panel:

http://localhost:9092/csp/sys/UtilHome.csp

Another example which I use in Covid-19 online dashboard to update the data:

ClassMethod CreateTask() As %Status
{
    Set task=##class(%SYS.Task).%New()
    Set task.Name = "Update data"
    Set task.NameSpace=$Namespace
    Set task.TimePeriod=0 // Daily
    Set task.TimePeriodEvery=1 // Every 1 day
    Set task.DailyFrequency=1 // Run Several times in a day
    Set task.DailyFrequencyTime=0 // Run every x minutes
    Set task.DailyIncrement=60 // # of minutes between runs
    Set task.DailyStartTime = 0 // Start at 00:00:00
    Set task.DailyEndTime = 86399 // End at 23:59:59
    Set task.StartDate = $p($H,",",1) // Start today
    
    Set taskdef = ##class(Covid19.UpdateTask).%New()
    Do task.AssignSettings(taskdef)
    Set task.TaskClass=$classname(taskdef)
    
    Set st = task.%Save()
    Return:$$$ISERR(st) st
    Return ##class(%SYS.Task).RunNow(task.%Id())
}

But you need to have the class,  Covid19.UpdateTask in this case:

Class Covid19.UpdateTask Extends %SYS.Task.Definition
{

Method OnTask() As %Status
{
    return ##class(Covid19.Utils).DailyUpdate()
}

}

HTH

In fact, It works!

Installation:

USER>zpm
zpm: USER>install terminal-multiline

[terminal-multiline]    Reload START
[terminal-multiline]    Reload SUCCESS
[terminal-multiline]    Module object refreshed.
[terminal-multiline]    Validate START
[terminal-multiline]    Validate SUCCESS
[terminal-multiline]    Compile START
[terminal-multiline]    Compile SUCCESS
[terminal-multiline]    Activate START
[terminal-multiline]    Configure START
[terminal-multiline]    Configure SUCCESS
[terminal-multiline]    Activate SUCCESS
zpm: USER>q

Usage with copy-n-paste from docs:

USER>d ^%zml
Entering multi line mode. Run with empty line. Stop with single "."
USER:zml:1> SET x=8
USER:zml:2>   FOR { WRITE "Running loop x=",x,!
USER:zml:3>         SET x=x-1
USER:zml:4>         QUIT:x=3
USER:zml:5>       }
USER:zml:6>   WRITE "Next command after FOR code block"
USER:zml:7> 
Running loop x=8
Running loop x=7
Running loop x=6
Running loop x=5
Running loop x=4

Next command after FOR code block
USER:zml:1>

It works like a charm!

Bravo, @Robert Cemper!