MP/M-II (Multi-Programming Monitor) emulator running on SIMH AltairZ80 inside an Ubuntu 24.04 Docker container.
apt install simh)docker pull geokm/mpmii:latest
docker run -d \\
--name MPM-II \\
-p 3002:3002 \\
-v mpmii_data:/data \\
--restart unless-stopped \\
geokm/mpmii:latest
services:
mpmii:
image: geokm/mpmii:latest
container_name: MPM-II
ports:
- "3002:3002"
volumes:
- mpmii_data:/data
restart: unless-stopped
volumes:
mpmii_data:
driver: local
On first run, the entrypoint seeds the /data volume with all base disk images from the container image. After that, everything in /data is persistent across restarts. Any changes made inside MP/M survive container rebuilds as long as you keep the named volume.
To reset/wipe and re-seed:
docker compose rm -v
# Then docker compose up -d again
All located in the container under /data (and seeded into the volume on first boot):
a-mpm.dsk — boot diskb-mpm.dsk — system diski-mpm.dsk, j-mpm.dsk — IDE hard-disk imagesblank.dsk — blank formatted diskFROM ubuntu:24.04
LABEL maintainer="Keith Matthews <[email protected]>"
RUN apt-get update \\
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \\
simh \\
&& apt-get clean \\
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mkdir -p /home/SIMH/X
# Copy base disk images into the image
COPY base/ /home/SIMH/X/
COPY entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
WORKDIR /home/SIMH/X
EXPOSE 3002/tcp
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/usr/bin/altairz80", "mpmII.ini"]
services:
mpmii:
build:
context: .
dockerfile: Dockerfile
container_name: MPM-II
ports:
- "3002:3002"
volumes:
- mpmii_data:/data
restart: unless-stopped
volumes:
mpmii_data:
driver: local
d tracks[0-7] 254
attach dsk0 a-mpm.dsk
attach dsk1 b-mpm.dsk
attach hdsk0 i-mpm.dsk
attach hdsk1 j-mpm.dsk
d common b000
set cpu 64k
set cpu itrap
set cpu z80
set cpu altairrom
set cpu banked
set simh timeroff
attach sio 3002
boot dsk0
Keith Matthews [email protected]
Content type
Image
Digest
sha256:3dcf278c1…
Size
33.9 MB
Last updated
5 months ago
docker pull geokm/mpmii