ここまでJetson Nano 2GBでDocker上にPython3環境を作ってきたが、32GBのSDカードだったためちょいと手狭になってきた。
JetsonNano B01のほうは128GBだったので一旦こっちに環境を移して続きの開発を行いたい。
ということでDocker-composeで構築したコンテナを一旦イメージに書き出そうと思う。
まずは一旦コンテナを終了する。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 378becd47c1a python_python3 "python3" 8 days ago Up 4 minutes 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp python3 $ docker stop python3 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 378becd47c1a python_python3 "python3" 8 days ago Exited (0) 4 seconds ago 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp python3
次にコンテナをイメージに書き出す。python3のイメージをもとにしたコンテナでFlaskによるウェブアプリを構築した状態なので
$ docker commit python3 python3_flask
というふうにした。
さらにこのイメージをファイルとして取り出すため
$ docker save -o /mnt/mac/python3_flask.tar python3_flask
とした。/mnt/macはJetsonNano2GBにマウントしたMacのホームディレクトリ。
さて、一方のJetsonNanoB01の方でもDocker-composeが使えるようにした上で、さっき作った/mnt/mac/python3_flask.tarをDockerの実行ディレクトリに置く。
$ nano Dockerfile FROM python3_flask:latest USER root RUN apt update RUN apt -y install locales && \ localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LANGUAGE ja_JP:ja ENV LC_ALL ja_JP.UTF-8 ENV TZ JST-9 ENV TERM xterm $ nano docker-compose.yml version: '3' services: python3: restart: always build: . container_name: 'python3' working_dir: '/root/' tty: true volumes: - ./opt:/mnt/opt ports: - "5001:5001"
とファイルを作っておく。docker-compose.ymlは2GBで作ったものと特に変更はなく、Dockerfileの1行目のFROMの部分を自分が作ったイメージにしておく。
で、
$ docker-compose up -d --build
としてやると、自分で作ったイメージからコンテナを構築してくれる。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 46b72084b844 python_python3 "python3" 2 hours ago Up 9 minutes 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp python3
これで移植完了。特に問題なくpythonもその他インストールしたblastやclustalwプログラムも動くことを確認した。
っしかしわかっていたことだが、やっぱりJetsonNanoのARM A57 cpu @ 1.43 GHzではblastを実用的に走らせるのはきつそうだ。tblastxとか考え込んでちっとも結果が帰ってこない。SDカードの読み込み速度がそんなに速くないからか?ベンチマーク的にはHaswelなXeonより劣るくらいという話だったが、クロックが低いし4コアだからか?