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に保管されています。

hub.docker.com

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研究会の資料に簡単に記載あり(会員のみ閲覧可)

参考にしました

www.ricos.co.jp

astherier.com