oacis_dockerのイメージを使ってdocker上OACISを動かしつつ、dockerを起動しているホストを計算ホストとして利用する手順についてまとめる。
ここでは手元のマシンがmacであることを前提とする。
たとえば手元のマシンのjupyter notebookとかで開発しつつ、OACISの環境構築はdockerで行う場合に有用。
以後、dockerを起動しているマシンをホストマシン、docker上で起動しているコンテナを仮想マシンと呼ぶ。
手順
- ホストマシン上でsshdを起動する。
- mac OSの場合、"System Preferences" -> "Sharing" -> "Remote Login" でsshdを起動できる。
- ホストマシン上でxsubをインストールする。
git clone https://github.com/crest-cassia/xsub.git
echo 'export PATH="$HOME/xsub/bin:$PATH"' >> ~/.bash_profile
echo 'export XSUB_TYPE="none"' >> ~/.bash_profile
- 詳細は https://github.com/crest-cassia/xsub を参照。
- docker上でoacisを起動する
docker run --name my_oacis -p 127.0.0.1:3000:3000 -dt oacis/oacis
- ホストマシン上に仮想マシンの公開鍵をコピーする。
-
docker exec -it -u oacis my_oacis bash -lc "ssh-copy-id $USER@host.docker.internal -p 22"
- ホストマシンにログインするためのパスワードが要求されるので入力する。
-
- 仮想マシン上の".ssh/config"にホストマシンにログインするための情報を記載する。
docker exec -it -u oacis my_oacis bash -lc "printf \"Host internal\n HostName host.docker.internal\n User $USER\n Port 22\n\" >> ~/.ssh/config"
-
http://localhost:3000 にアクセスしてOACISのページを開き "Hosts"->"New Host" から新しいホストを登録する。
- Name: internal として登録する。他はデフォルト値でOK。
- simulatorをOACIS上で登録する。その際に
executable_on
でinternal
にチェックを入れる。