LoginSignup
4
4

More than 5 years have passed since last update.

独自の julia docker image を作ってみる

Last updated at Posted at 2017-10-17

モチベーション

julia lang の和書が2017/10/1にNTSから出版されました。

Juliaデータサイエンス

これを機に触れてみようと思い立ち、
書籍では v0.4.x
最新は v0.6.0 とのことでこの二つのカーネルを
jupyter-notebook で実行できるようにすることがゴールです。
ついでに v0.6.0 環境には CmdStan を入れておきます。

調査

まったく julia について知らなかったので
公式をチェック
公式 julialang.org
juliabox.com という素敵なサービスも発見
容量が500MBまでとのこと. また, CmdStan も使えない.
juliabox.com
公式 docker image を参考に、Dockerfile を作ってみます

作ったDockerfile

datarefine/julialang-docker

docker run

docker pull datarefine/julialang-docker:latest
docker run --rm -it -p 8888:8888 --name julia datarefine/julialang-docker:latest

docker run 実行後、下記のログが標準出力に表示されるので、そのURLへアクセスする

[C 15:41:32.244 NotebookApp]
 Copy/paste this URL into your browser when you connect for the first time,
 to login with a token:
   http://0.0.0.0:8888/?token=xxxxxx

オプションについて

  • --rm: コンテナを止めた後に、そのまま削除
  • -i: attach していなくても標準出力につないだままにしてくれる
  • -t: 仮のttyに割り当ててくれる
  • --name: コンテナの名前をつける
  • -p host_port:container_port: デフォルトではネットワークは bridge であり,host側のポートとcontainer側のポートをつないでくれる
  • --cpuset-cpus="": 0-3/1,3など, どの CPU で container を実行するか指定
  • --memory="": 4g,8g,など container が使うメモリ数

その他

docker run --rm -it --name julia datarefine/julialang-docker:latest /bin/bash

bashが起動し, juliaコマンドが使えます

container 上で実行しているのでcontainer を止めると、
jupyter にアップロードしたファイルは消えます。

公式と変更した点

  • BaseImage ubuntu:16.04 -> phusion/baseimage
    • プロセスコントロールとしてrunitが導入されている.
  • miniconda -> miniconda3
    • ENV[CONDA_JL_HOME"]="/path/to/miniconda3"
    • この環境変数により IJulia や Conda のパッケージインストールの時に、指定したminiconda3を利用する(Using an already existing Conda installation)
  • jupyter-notebook 上で v0.4.7 と v0.6.0 のカーネルを利用できるように.
  • CmdStan をインストール. julia から使えるように.

課題

  • libcairo2 によって x11 が入ってしまって、イメージサイズが大きくなってしまう ->小さくしたい

(windows への docker 実行環境導入は別記事で書きます)
書きました.
https://qiita.com/ysaito8015@github/items/1ec358275227d32cbd44

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4