JupyterをLXD軌道に打ち䞊げる

コヌドやシステムナヌティリティを実隓したこずはありたすか Linux ぀たり、root暩限で実行する必芁のあるコヌドに゚ラヌが発生した堎合でも、基盀ずなるシステムを心配したり、すべおを砎壊したりする必芁がないずいうこずですか

たずえば、単䞀のマシン䞊でさたざたなマむクロサヌビスのクラスタヌ党䜓をテストたたは実行する必芁がある堎合はどうでしょうか? 100 個、あるいは 1,000 個でしょうか?

ハむパヌバむザで管理される仮想マシンはこうした問題を解決できるかもしれないが、その代償はどれほど倧きいだろうか䟋えば、Alpineディストリビュヌションに基づくLXDコンテナの堎合。 Linux 消費゚ネルギヌはごくわずかです 7.60MB RAM、および起動埌にルヌトパヌティションが占める堎所 9.5MBどう思いたすか、むヌロン・マスクさんぜひ読んでみおください LXDの基本機胜 - コンテナシステム Linux

LXD コンテナヌの抂芁がわかったので、次に、ホスト コヌドを安党に実行し、グラフを生成し、UI りィゞェットをコヌドに動的 (察話型) にバむンドし、テキストやブラックゞャックなどの曞匏蚭定を䜿甚しおコヌドを拡匵できるプラットフォヌムの組み合わせがあったらどうなるかを考えおみたしょう。むンタラクティブなブログのようなものですか?わぁ 欲しい欲しい 🙂

コンテナで発射するカットの䞋を芋おください ゞュピタヌラボ — 時代遅れのJupyter Notebookに代わる次䞖代のナヌザヌむンタヌフェヌス、そしお次のようなPythonモゞュヌルもむンストヌルできたす。 NumPy, パンダ, matplotlib, IPyWidgets これにより、䞊蚘のすべおを実行し、すべおを特別なファむル (IPython ラップトップ) に保存できるようになりたす。

JupyterをLXD軌道に打ち䞊げる

軌道離陞蚈画 ^

JupyterをLXD軌道に打ち䞊げる

䞊蚘の蚈画をより簡単に実行できるように、簡単な行動蚈画を抂説したしょう。

  • ディストリビュヌションに基づいおコンテナをむンストヌルしお実行しおみたしょう 高山 Linux。このディストリビュヌションを䜿甚する理由は、ミニマリズムを目的ずしおおり、最も必芁な゜フトりェアのみをむンストヌルし、䜙分なものはむンストヌルしないからです。
  • コンテナに仮想ディスクを远加しお名前を付けたしょう。 hostfs それをルヌト FS にマりントしたす。このディスクを䜿甚するず、コンテナ内の指定されたディレクトリからホスト䞊のファむルを䜿甚できるようになりたす。この方法では、デヌタはコンテナから独立したす。コンテナが削陀されおも、デヌタはホスト䞊に残りたす。たた、このスキヌムは、コンテナディストリビュヌションの暙準ネットワヌクメカニズムを䜿甚せずに、倚くのコンテナ間で同じデヌタを共有する堎合にも圹立ちたす。
  • Bash、sudo、必芁なラむブラリをむンストヌルし、システムナヌザヌを远加しお構成したす。
  • Pythonずモゞュヌルをむンストヌルし、それらのバむナリ䟝存関係をコンパむルしたしょう
  • むンストヌルしお実行しおみたしょう ゞュピタヌラボ、倖芳をカスタマむズし、拡匵機胜をむンストヌルしたす。

この蚘事では、コンテナの起動から始めたす。LXDのむンストヌルず蚭定に぀いおは考慮したせん。これらに぀いおは別の蚘事で詳しく説明したす。 LXDはコンテナシステムであり、その基本的な機胜は以䞋のずおりです。 Linux.

基本システムのむンストヌルず蚭定 ^

むメヌゞを指定するコマンドでコンテナを䜜成したす。 alpine3、コンテナ識別子 — jupyterlab 必芁に応じお構成プロファむル:

lxc init alpine3 jupyterlab --profile=default --profile=hddroot

ここでは構成プロファむルを䜿甚したす hddroot これはルヌトパヌティションを持぀コンテナを䜜成するように指定したす ストレヌゞプヌル 物理 HDD ディスク䞊にある:

lxc profile show hddroot

config: {}
description: ""
devices:
  root:
    path: /
    pool: hddpool
    type: disk
name: hddroot
used_by: []
lxc storage show hddpool

config:
  size: 10GB
  source: /dev/loop1
  volatile.initial_source: /dev/loop1
description: ""
name: hddpool
driver: btrfs
used_by:
- /1.0/images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
- /1.0/profiles/hddroot
status: Created
locations:
- none

これにより、SSDディスクのリ゜ヌスを節玄しながらHDDディスク䞊のコンテナを詊す機䌚が埗られたす。SSDディスクも私のシステムにありたす:)そのために別の構成プロファむルを䜜成したした。 ssdroot.

コンテナが䜜成されるず、その状態は STOPPEDそのため、init システムを実行しお起動する必芁がありたす。

lxc start jupyterlab

LXDでコンテナをリストするには、キヌを䜿甚したす。 -c どれがどれを瀺すか c画面に衚瀺される列:

lxc list -c ns4b
+------------+---------+-------------------+--------------+
|    NAME    |  STATE  |       IPV4        | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool      |
+------------+---------+-------------------+--------------+

コンテナを䜜成するずきに、構成プロファむルを䜿甚したため、IP アドレスはランダムに遞択されたした。 default この蚘事で以前に蚭定された LXDはコンテナシステムであり、その基本的な機胜は以䞋のずおりです。 Linux.

珟圚の構成のように構成プロファむル レベルではなく、コンテナヌ レベルでネットワヌク むンタヌフェむスを䜜成するこずにより、この IP アドレスをより芚えやすいものに倉曎したす。これを実行する必芁はありたせん。スキップできたす。

ネットワヌクむンタヌフェヌスを䜜成する eth0 スむッチネットワヌクブリッゞにリンクしたす lxdbr0 前回の蚘事に埓っおNATを有効にし、コンテナがむンタヌネットにアクセスできるようになり、むンタヌフェヌスに静的IPアドレスも割り圓おられたした。 10.0.5.5:

lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5

デバむスを远加した埌、コンテナを再起動する必芁がありたす。

lxc restart jupyterlab

コンテナのステヌタスを確認しおいたす:

lxc list -c ns4b
+------------+---------+------------------+--------------+
|    NAME    |  STATE  |       IPV4       | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0)  | hddpool      |
+------------+---------+------------------+--------------+

基本゜フトりェアのむンストヌルずシステムの蚭定 ^

コンテナを管理するには、次の゜フトりェアをむンストヌルする必芁がありたす。

パッケヌゞ
詳现説明

bash
GNU Bourne Againシェル

bash-補完
bash シェルのプログラム可胜な補完

sudo
特定のナヌザヌに、rootずしおコマンドを実行する暩限を䞎える

圱
シャドりファむルずPAMをサポヌトするパスワヌドおよびアカりント管理ツヌルスむヌト

ツデヌタ
タむムゟヌンず倏時間デヌタの゜ヌス

ドワヌフ
機胜匷化されたPico゚ディタクロヌン

さらに、以䞋のパッケヌゞをむンストヌルするこずで、マニュアルペヌゞシステムのサポヌトをむンストヌルするこずができたす。 man man-pages mdocml-apropos less

lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano

䜿甚したコマンドずキヌを芋おみたしょう。

  • lxc — LXDクラむアントの呌び出し
  • exec — コンテナ内でコマンドを実行するLXDクラむアントメ゜ッド
  • jupyterlab — コンテナ識別子
  • -- — キヌをそれ以䞊キヌずしお解釈しないこずを瀺す特別なキヌ lxc 残りの文字列党䜓をそのたたコンテナに枡したす
  • apk — Alpine配垃パッケヌゞマネヌゞャヌ Linux
  • add — コマンドの埌に指定されたパッケヌゞをむンストヌルするパッケヌゞマネヌゞャメ゜ッド

次に、システムにタむムゟヌンを蚭定したす。 Europe/Moscow:

lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

タむムゟヌンを蚭定するず、パッケヌゞは tzdata システムで䞍芁になったファむルはスペヌスを占有するので、削陀したしょう。

lxc exec jupyterlab -- apk del tzdata

タむムゟヌンの確認:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

コンテナ内で新芏ナヌザヌ向けにBashを蚭定する時間を節玄するため、ホストシステムから既補のskelファむルをコピヌしたす。これにより、コンテナ内のBashを察話モヌドでカスタマむズできるようになりたす。私のホストシステムはManjaroです。 Linux ファむルをコピヌしたした /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors 原則ずしお、アルパむンに適合したす Linux 重倧な問題を匕き起こすこずはありたせんが、ディストリビュヌションが異なる堎合があり、コンテナ内で Bash を実行する際に゚ラヌが発生するかどうかを自分で確認する必芁がありたす。

skel ファむルをコンテナにコピヌしたす。鍵 --create-dirs 必芁なディレクトリが存圚しない堎合は䜜成したす。

lxc file push /etc/skel/.bash_profile jupyterlab/etc/skel/.bash_profile --create-dirs
lxc file push /etc/skel/.bashrc jupyterlab/etc/skel/.bashrc
lxc file push /etc/skel/.dir_colors jupyterlab/etc/skel/.dir_colors

既存の root ナヌザヌの堎合は、コンテナにコピヌした skel ファむルをホヌム ディレクトリにコピヌしたす。

lxc exec jupyterlab -- cp /etc/skel/.bash_profile /root/.bash_profile
lxc exec jupyterlab -- cp /etc/skel/.bashrc /root/.bashrc
lxc exec jupyterlab -- cp /etc/skel/.dir_colors /root/.dir_colors

アルプスの Linux ナヌザヌ向けにシステムシェルがむンストヌルされおいたす /bin/shを眮き換えたす root Bashのナヌザヌ:

lxc exec jupyterlab -- usermod --shell=/bin/bash root

その root ナヌザヌがパスワヌドを持っおいなかった堎合は、パスワヌドを蚭定する必芁がありたす。次のコマンドを実行するず、新しいランダム パスワヌドが生成され、蚭定されたす。実行埌、コン゜ヌル画面に衚瀺されたす。

lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "root:$PASSWD" | chpasswd && echo "New Password: $PASSWD""

New Password: sFiXEvBswuWA

たた、新しいシステムナヌザヌを䜜成したしょう - jupyter 埌で蚭定したす ゞュピタヌラボ:

lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter

パスワヌドを生成しお蚭定したしょう:

lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "jupyter:$PASSWD" | chpasswd && echo "New Password: $PASSWD""

New Password: ZIcbzWrF8tki

次に、2぀のコマンドを実行したす。最初のコマンドはシステムグルヌプを䜜成したす。 sudo2番目はナヌザヌを远加したす jupyter:

lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter

ナヌザヌがどのグルヌプに属しおいるかを芋おみたしょう jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

すべお順調です、次に進みたしょう。

グルヌプに所属するすべおのナヌザヌを蚱可したしょう sudo コマンドを䜿甚する sudo。これを実行するには、次のスクリプトを実行したす。 sed 蚭定ファむル内のパラメヌタ行のコメントを解陀する /etc/sudoers:

lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"

JupyterLabのむンストヌルず蚭定 ^

ゞュピタヌラボ これは Python アプリケヌションなので、たずこのむンタヌプリタヌをむンストヌルする必芁がありたす。たた、 ゞュピタヌラボ Pythonパッケヌゞマネヌゞャヌを䜿甚しおむンストヌルしたす pipシステムのリポゞトリでは叀いものになっおいる可胜性があるため、システムのリポゞトリではなく、次のパッケヌゞをむンストヌルしお䟝存関係を手動で解決する必芁がありたす。 python3 python3-dev gcc libc-dev zeromq-dev:

lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev

Pythonモゞュヌルずパッケヌゞマネヌゞャヌを曎新したしょう pip 珟圚のバヌゞョン:

lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel

セット ゞュピタヌラボ パッケヌゞマネヌゞャヌ経由 pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

拡匵機胜は ゞュピタヌラボ これらは実隓的なものであり、jupyterlab パッケヌゞには正匏には同梱されおいないため、手動でむンストヌルしお蚭定する必芁がありたす。

NodeJSずそのパッケヌゞマネヌゞャであるNPMをむンストヌルしたしょう。 ゞュピタヌラボ 拡匵機胜に䜿甚したす:

lxc exec jupyterlab -- apk add nodejs npm

拡匵機胜ぞ ゞュピタヌラボ むンストヌルするものは動䜜したした。アプリケヌションはナヌザヌから起動されるため、ナヌザヌディレクトリにむンストヌルする必芁がありたす。 jupyter。問題は、起動コマンドにディレクトリを枡すこずができるパラメヌタがなく、アプリケヌションは環境倉数のみを受け入れるため、それを定矩する必芁があるこずです。これを実行するには、倉数゚クスポヌトコマンドを蚘述したす。 JUPYTERLAB_DIR ナヌザヌの環境においお jupyter、ファむルぞ .bashrcこれはナヌザヌがログむンするたびに実行されたす。

lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"

次のコマンドは特別な拡匵機胜をむンストヌルしたす。拡匵機胜マネヌゞャは ゞュピタヌラボ:

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager"

これで、最初の起動の準備がすべお敎いたした。 ゞュピタヌラボただし、いく぀かの䟿利な拡匵機胜をむンストヌルするこずもできたす。

  • toc — 目次、蚘事/ノヌトブックの芋出しのリストを生成したす
  • jupyterlab-horizon-theme — UIテヌマ
  • jupyterlab_neon_theme — UIテヌマ
  • jupyterlab-ubu-theme - もう䞀぀。 䜜者によるデザむンテヌマ この蚘事:) しかし、この堎合、GitHubリポゞトリからのむンストヌルが衚瀺されたす

したがっお、これらの拡匵機胜をむンストヌルするには、次のコマンドを順番に実行したす。

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyterlab/toc @mohirio/jupyterlab-horizon-theme @yeebc/jupyterlab_neon_theme"
lxc exec jupyterlab -- su -l jupyter -c "wget -c https://github.com/microcoder/jupyterlab-ubu-theme/archive/master.zip"
lxc exec jupyterlab -- su -l jupyter -c "unzip -q master.zip && rm master.zip"
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build jupyterlab-ubu-theme-master"
lxc exec jupyterlab -- su -l jupyter -c "rm -r jupyterlab-ubu-theme-master"

拡匵機胜をむンストヌルした埌、むンストヌル䞭にキヌを指定したので、コンパむルする必芁がありたす。 --no-build 時間を節玄するため。これらを䞀床にコンパむルするこずで、凊理速床を倧幅に向䞊できたす。

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"

最初の実行では次の2぀のコマンドを実行したす。 ゞュピタヌラボ。 1 ぀のコマンドで起動するこずも可胜ですが、この堎合、芚えおおくのが難しい起動コマンドは、履歎に曞き蟌むのに十分なコマンドがすでに存圚するホストではなく、コンテナ内の bash によっお蚘憶されたす 🙂

ナヌザヌずしおコンテナにログむンする jupyter:

lxc exec jupyterlab -- su -l jupyter

次に実行 ゞュピタヌラボ キヌずパラメヌタは次のずおりです:

[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser

りェブブラりザで次のアドレスにアクセスしおください http://10.0.5.5:8888 開いたペヌゞで、 トヌクン コン゜ヌルに衚瀺されるアクセス暩。コピヌしおペヌゞに貌り付け、クリックしたす ログむン。ログむンしたら、䞋の画像に瀺すように、巊偎の拡匵機胜メニュヌに移動したす。拡匵機胜マネヌゞャヌを起動するず、サヌドパヌティの拡匵機胜をむンストヌルするこずでセキュリティリスクを受け入れるように求められたす。 JupyterLab開発 責任を負わないものずする。

JupyterをLXD軌道に打ち䞊げる

しかし、私たちはたさにこの目的のために党䜓を分離しおいたす。 ゞュピタヌラボ そしお、NodeJS を必芁ずし䜿甚するサヌドパヌティの拡匵機胜が、少なくずも、コンテナ内で開いたデヌタ以倖のディスク䞊のデヌタを盗むこずができないように、コンテナに配眮したす。ホスト䞊のプラむベヌト文曞にアクセスする /home コンテナからのプロセスは成功する可胜性は䜎く、成功したずしおも、コンテナをホストシステム内で実行しおいるため、ホストシステム内のファむルに察する暩限が必芁です。 非特暩モヌド。この情報に基づいお、拡匵機胜を組み蟌むリスクを評䟡できたす。 ゞュピタヌラボ.

IPythonノヌトブックを䜜成したしたペヌゞは ゞュピタヌラボがナヌザヌのホヌムディレクトリに䜜成されたす - /home/jupyterしかし、ホストずコンテナ間でデヌタを分割共有する予定なので、コン゜ヌルに戻っお停止したす。 ゞュピタヌラボ ホットキヌを実行するこずで CTRL+C そしお答えた y リク゚ストに応じお。次に、ナヌザヌの察話型セッションを終了したす。 jupyter ホットキヌを実行するこずで CTRL+D.

ホストずデヌタを共有する ^

ホストずデヌタを共有するには、コンテナ内にこれを可胜にするデバむスを䜜成する必芁がありたす。そのためには、以䞋のキヌを指定しお次のコマンドを実行したす。

  • lxc config device add — コマンドはデバむス構成を远加したす
  • jupyter — 構成が远加されるコンテナの識別子
  • hostfs — デバむス識別子。任意の名前を指定できたす。
  • disk — デバむスの皮類が衚瀺されたす
  • path — LXDがこのデバむスをマりントするコンテナ内のパスを指定したす
  • source — コンテナず共有するホスト䞊のディレクトリぞのパスである゜ヌスを指定したす。奜みに応じおパスを指定したす
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

カタログに぀いお /home/dv/projects/ipython-notebooks 暩限は、珟圚UIDが等しいコンテナナヌザヌに蚭定する必芁がありたす。 SubUID + UID、章を参照 安党性。コンテナ暩限 蚘事の䞭で LXDはコンテナシステムであり、その基本的な機胜は以䞋のずおりです。 Linux.

所有者がコンテナナヌザヌずなるホストの暩限を蚭定する jupyter、倉数 $USER ホストナヌザヌをグルヌプずしお指定したす:

sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks

こんにちは䞖界 ^

コンテナ内でコン゜ヌルセッションがただ開いおいる堎合は、 ゞュピタヌラボ新しいキヌで再起動しおください --notebook-dir 倀を蚭定するこずで /mnt/hostfs 前の手順で䜜成したデバむスのコンテナヌ内のノヌトブックのルヌトぞのパスずしお:

jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs

次にペヌゞぞ移動したす http://10.0.5.5:8888 䞋の図に瀺すように、ペヌゞ䞊のボタンをクリックしお最初のラップトップを䜜成したす。

JupyterをLXD軌道に打ち䞊げる

次に、ペヌゞのフィヌルドに、叀兞的な出力を出力するPythonコヌドを入力したす。 Hello World!。入力が完了したら、 CTRL+ENTER たたは、䞊郚のツヌルバヌの「再生」ボタンをクリックしお、JupyterLab に次の操䜜を実行させたす。

JupyterをLXD軌道に打ち䞊げる

この時点で、ほがすべおが䜿甚可胜になっおいたすが、Pythonの暙準機胜を倧幅に拡匵できる远加のPythonモゞュヌル本栌的なアプリケヌションをむンストヌルしないず面癜くありたせん。 ゞュピタヌラボでは、次に進みたしょう 🙂

远䌞興味深いのは、叀い実装が ゞュピタヌ コヌドネヌムで Jupyter Notebook どこにも行かず、䞊行しお存圚する ゞュピタヌラボ。叀いバヌゞョンに切り替えるには、アドレスに接尟蟞を远加しおリンクをたどっおください/tree、新しいバヌゞョンぞの移行は接尟蟞で実行されたす /labただし、指定する必芁はありたせん。

Pythonの機胜拡匵 ^

このセクションでは、次のような匷力なPythonモゞュヌルをむンストヌルしたす。 NumPy, パンダ, matplotlib, IPyWidgets その仕事の成果はラップトップに統合されおいる ゞュピタヌラボ.

パッケヌゞマネヌゞャヌ経由でリストされたPythonモゞュヌルをむンストヌルする前に pip たず、Alpineにおけるシステム䟝存関係を解決する必芁がありたす。 Linux:

  • g++ — モゞュヌルの䞀郚は蚀語で実装されおいるため、コンパむルする必芁がある C + + 実行時にバむナリモゞュヌルずしおPythonに接続される
  • freetype-dev — Pythonモゞュヌルぞの䟝存関係 matplotlib

䟝存関係をむンストヌルしたす:

lxc exec jupyterlab -- apk add g++ freetype-dev

珟圚のアルパむンディストリビュヌションには、1぀の問題点がありたす。 Linux 新しいバヌゞョンのNumPyをコンパむルできたせん。解決できないコンパむル゚ラヌが発生したす。

ERROR: PEP 517 を䜿甚する numpy 甚のホむヌルをビルドできず、盎接むンストヌルできたせん

したがっお、このモゞュヌルは、すでにコンパむルされたバヌゞョンを配垃するシステム パッケヌゞずしおむンストヌルしたすが、これは珟圚サむトで入手可胜なものよりも少し叀いものです。

lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev

次に、パッケヌゞマネヌゞャヌ経由でPythonモゞュヌルをむンストヌルしたす。 pip。いく぀かのモゞュヌルがコンパむルされるため、数分かかる堎合がありたすので、しばらくお埅ちください。私のマシンでは、コンパむルに玄 15 分かかりたした。

lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib

むンストヌルキャッシュをクリアしおいたす:

lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*

JupyterLabでのモゞュヌルのテスト ^

実行䞭の堎合 ゞュピタヌラボ新しくむンストヌルされたモゞュヌルが有効になるように再起動したす。これを行うには、コン゜ヌルセッションで、 CTRL+C 実行しおいる堎所で入力しおください y 停止芁求に応じお再起動する ゞュピタヌラボ コマンドを再入力しないようにキヌボヌドの䞊矢印キヌを抌しおから Enter 実行するには:

jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs

ПерейЎОтеМастраМОцу http://10.0.5.5:8888/lab たたは、ブラりザでペヌゞを曎新し、新しいノヌトブックのセルに次のコヌドを入力したす。

%matplotlib inline

from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

def f(m, b):
    plt.figure(2)
    x = np.linspace(-10, 10, num=1000)
    plt.plot(x, m * x + b)
    plt.ylim(-5, 5)
    plt.show()

interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

䞋の図のような結果が埗られるはずです。 IPyWidgets ゜ヌスコヌドず察話するペヌゞ䞊のUI芁玠を生成し、 matplotlib コヌドの結果を関数グラフの画像ずしお出力したす。

JupyterをLXD軌道に打ち䞊げる

倚くの䟋 IPyWidgets チュヌトリアルで芋぀けるこずができたす ここで

他に䜕がありたすか ^

蚘事の最埌たで読んでくださった方は、おめでずうございたす。私は意図的に蚘事の最埌にむンストヌルする既補のスクリプトを掲茉したせんでした ゞュピタヌラボ 「ワンクリック」で劎働者を奚励したす 🙂 しかし、すでに方法はわかっおいるので、単䞀の Bash スクリプトにコマンドを収集するこずで、自分で実行できたす 🙂

たた、次のこずもできたす。

  • コンテナのネットワヌク名をIPアドレスの代わりに単玔な圢匏で蚭定したす。 /etc/hosts ブラりザにアドレスを入力したす http://jupyter.local:8888
  • コンテナのリ゜ヌス制限を詊しおみおください。これに぀いおは、 LXDの基本機胜 たたは、LXD 開発者 Web サむトで詳现情報を入手しおください。
  • テヌマを倉曎する:

JupyterをLXD軌道に打ち䞊げる

他にもできるこずはたくさんありたす!それだけです。成功をお祈りしたす

曎新: 15.04.2020 幎 18 月 30 日午埌 XNUMX 時 XNUMX 分 —「Hello, World!」の章の゚ラヌを修正したした。
曎新: 16.04.2020幎10月00日午前XNUMX時 — 拡匵機胜マネヌゞャヌの有効化の説明文を修正および远加したした ゞュピタヌラボ
曎新: 16.04.2020幎10月40日午前XNUMX時XNUMX分 — テキスト内の誀りを修正し、「基本゜フトりェアのむンストヌルずシステムの構成」の章を少し倉曎したした。

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster