JBrowseをDockerで動かす、その1、VMの作成とネットワーク設定
DockerのUbuntuにJBrowseをインストールし
Nginxを使ってローカルネットワークで
bamファイルを共有する
JBrowseはDockerの永続ボリュームである
Docker volume上にインストールする
メリットはなんだろう
コンテナ間でファイルの共有しつつ
そのファイルをローカルネットワークから参照するのに
ちょうどよい例題になりそうだったから試してみた、
というのが正直なところ
なんとなく応用が効きそう
手順は以下の通り
- Virtual Machine(VM)の作成とネットワーク設定(この記事)
- Docker Volumeの作成
- Dockerfileのbuild
- JBrowseのインストール
- Nginxの起動とJBrowseへのアクセス
- Bamファイルの登録
- イメージの作成
まずVirtual Machine(VM)の作成とネットワーク設定をする
JBrowseをインストール後に
BamファイルをJBrowseに登録するが
その時メモリ/ストレージを消費するようだ
デフォルトのメモリ/ストレージサイズだと失敗した
そこでメモリとストレージサイズを
デフォルトより大きくした
hogehogeというVMを作成する
$ docker-machine.exe create --driver virtualbox --virtualbox-disk-size "120000" --virtualbox-memory "16384" hogehoge
hogehogeは起動/シャットダウンにVMの名前をつける
$ docker-machine.exe start hogehoge $ docker-machine.exe stop hogehoge
VMの名前がdefaultの場合だといらないのでやや面倒
既存のdefaultを消して新しくdefaultのVMを
作り直すという手もあるが
この場合内部のimageも消えてしまう
(実際消えてしまいimageを復活できずに困った)
既存のVMを消して新規に作る場合は
以下のコマンドを使う
$ docker-machine.exe rm default $ docker-machine.exe create --driver virtualbox --virtualbox-disk-size "120000" --virtualbox-memory "16384" default
なおVMはwslから作る
VirtualBoxからも作成できるが
wslからアクセスする方法がわからなかった
次に作成したVMをローカルネットワーク上に公開するために
ポートフォワーディングの設定をする
こちらのサイトを参考にした
Dockerにubuntuをインストール後、nginxを入れてサイトを表示したい。|むく|note
VIrturalBoxの場合、使用するVM(hogehogeまたはdefault)を選択し
[設定] -> [ネットワーク]にあるアダプターから行う
いくつかアダプターのタブがあるが
NATに割り当てられているアダプターを使う
[高度]の[ポートフォワーディング]をクリックすると
[ポートフォワーディング ルール]というウィンドウが現れる
ウィンドウ右側のボタンでルールを追加し
ホストポートに"8000"、ゲストポートに"8080"を追加する
名前は任意で良さそう
最後にホストOS(Windows10)とゲストOS(wsl)との間で
ファイルの遣り取りをするために
共有フォルダーの設定をする
詳しくはこの記事を参照してもらいたい
mecobalamin.hatenablog.com
VirtualBoxのdefaultのVMを選択する
[設定] -> [共有フォルダー]を選び
右のボタンで共有するフォルダーを追加する
Eドライブを追加する場合は
フォルダーのパスをe:\
フォルダー名をeとする
[自動マウント]と[永続化する]にチェックを入れる
通常、windowsのディレクトリは
wslの/mnt/にマウントされる
これをルート/にマウントするように変更する
そのために/etc/wsl.confに以下のように書き込んだ
[automount] root = "/"
また$HOME/.profileのDOKER_CERT_PATHの行を
/mnt/cなのを/mntを除いて/cとする
ファイルの書き換えが終わったら
wslのウインドウを閉じて
Powershellからコマンドでwslを終了する
> wslconfig /t Ubuntu
wslからdockerを起動したときに
windowsのディレクトリにアクセスできたら完了
例えば以下のコマンドをwslから実行する
$ docker run --rm -v /e/hoge:/tmp/fuga -it ubuntu /bin/bash
Dockerのubuntuの/tmp/fugaを見たときに
windowsのe:\hogeの内容が見えたら
フォルダの共有ができている
とりあえず前準備はここまで
続きます
以下に過去記事のリンク
mecobalamin.hatenablog.com
mecobalamin.hatenablog.com
mecobalamin.hatenablog.com
ゲノムブラウザのセッティング
www.ncbi.nlm.nih.gov