Docker【FrontISTRを動かす】
OSSのFEMソフトウェアFrontISTRのDocker利用を通じて、Dockerについての理解を深める回です。
Docker imageをインストールする
以下のFrontISTR公式サイトのダウンロードページに行くと、各バージョンごとのFrontISTRが用意されています。
https://www.frontistr.com/download/
Dockerのボタンを押すと、以下コマンドをコピーしてくれとの表示がされるので、コマンドをコピーします。
docker pull registry.gitlab.com/frontistr-commons/frontistr/fistr1:master
:以下はタグと呼ばれるもののようで、ダウンロードするfrontistrのバージョンで違います。
わき道)Docker imageの格納場所
一般的に、docker imageはdocker hubに保管されています。
FrontISTRのdocker imageはGitLab Container Registryにて管理されているようです。
プライベートDockerレジストリとしてのGitLab Container Registry - Qiita
置き場はここのようです。
docker · master · FrontISTR-Commons / FrontISTR · GitLab
ということでdocker imageをpull
$ docker pull registry.gitlab.com/frontistr-commons/frontistr/fistr1:master
Dockerコンテナの起動
コマンドを打ち込んでfrontistrコンテナ環境に移行します。
$ docker run -it registry.gitlab.com/frontistr-commons/frontistr/fistr1:master
# which fistr1
コマンドで実行ファイルの保存先を確認できます(/usr/bin/fistr1にあった。)。
# gfortran -v
でgfortranをインストールしていることを確認します。なお、ファイルを読もうとするとviコマンド(lessも)が無く、困ったなぁってなりましたが、一旦保留(使わないし)。docker環境では、同様の状態の場合も多いようです。
Docker コマンド
$ docker run -it --sig-proxy=false --rm -u $UID -v $PWD:$PWD -w $PWD registry.gitlab.com/frontistr-commons/frontistr/fistr1:master fistr1 -t 1
dockerコンテナを使って、frontistrの実行プログラムを直接するときは、上記コマンドで実行可です。コマンドオプションは以下。(研究会資料をカンニングしています。)
- ワークディレクトリをホストと同一パスにして(-w)
- カレントディレクトリをマウントして(-v)
- UIDを指定し同じものを使う(-u)
- コンテナへの変更を保存しない(--rm)
- インタラクティブ(-i)で端末を割り当て(-t)
- Ctrl+Cなどでコンテナごと落とす(--sig-proxy=false)
以上、とりあえず深まりました。
参考)FrontISTRのDocker対応
第57回FrontISTR研究会の資料に簡単に記載あり(会員のみ閲覧可)