メインフレームをDockerで動かす


はじめに

この春に初めての後輩ができました。
OJTのリーダーとしていろいろ教えることになるのですが「メインフレームの操作にもたついてたらカッコ悪いかも」と思ったのでこっそり練習をしておこうと思います。
さすがに本番機で練習するわけにいかないので、dockerでメインフレームを動かしてみます。

環境

  • Windows 10 Home
  • Docker toolboxがインストール済

どうやるか

こちらの記事のとおりパブリックドメインになっているメインフレームのOSがあり、Herculesというエミュレータで動かすことができます。
これらがインストール済のDockerイメージを使います。

メインフレームの起動

このイメージにMVS3.8jとHerculesが入っているのでpullしてコンテナを起動します。ありがたや。
https://hub.docker.com/r/rattydave/docker-ubuntu-hercules-mvs

docker pull rattydave/docker-ubuntu-hercules-mvs
docker run -dit --name tk4- \
           -p 3270:3270 -p 8038:8038 \
           rattydave/docker-ubuntu-hercules-mvs:latest

コンテナが起動するとhttp://dockerのIP:8038 からメインコンソールを覗くことができます。
しばらく待つとtk4-という対話型システムが起動します。

3270エミュレータの起動

tk4-からメインフレームを操作するため3270エミュレータを使います。
Dockerfileを作ってくれた人がいるのでありがたく使わせてもらいます。
https://github.com/brfso/docker-c3270

自分の環境では192.168.xxx.yyyの3270ポートでメインフレームが動いているのでこれらを
引数に指定します。

git clone https://github.com/brfso/docker-c3270.git
docker build -t brfso/c3270 .
docker run -it brfso/c3270 192.168.xxx.yyyy 3270

3270エミュレータが起動しました!(色が見づらくてすいません)

割り当て済のIDとPASSでログインします
ID: HERC01
PASS: CUL8TR

来ました!

JOBの実行

せっかくなのでJOBを実行してみます

結果は…

成功!

3270エミュレータはescキーを押下すると下の画面に遷移しquitを入力すると終了します。

メインフレームはTSO,JES2,CPUを止めた後メインコンソールの右上にあるPowerOFFを押します。
止め方はこちらを参考にしました

さいごに

Dockerを使用することで簡単にメインフレームを動かすことができました。
次回はSORTに手を出してみたいと思います。

参考