Famoahana an'i Jupyter amin'ny orbit LXD

Moa ve ianao tsy maintsy nanandrana ny kaody na ny rafitra fampiasa amin'ny Linux mba tsy hanahy momba ny rafitra fototra ary tsy handrava ny zava-drehetra raha sendra misy hadisoana ao amin'ny code izay tokony hihazakazaka miaraka amin'ny tombontsoa fototra?

Fa ahoana ny amin'ny hoe aleo lazaina fa mila mitsapa na mitantana andiana microservices isan-karazany amin'ny milina iray ianao? Zato na arivo aza?

Miaraka amin'ny milina virtoaly tantanan'ny hypervisor, ny olana toy izany dia azo ary ho voavaha, fa amin'ny vidiny inona? Ohatra, ny kaontenera ao amin'ny LXD mifototra amin'ny fizarana Alpine Linux dia mandany fotsiny 7.60MB RAM, ary ny toerana misy ny fizarazaran'ny fakany aorian'ny fanombohana 9.5MB! Ahoana no tianao izany, Elon Musk? Manoro hevitra aho hanamarina fahaiza-manao fototra amin'ny LXD - rafitra fitahirizana ao amin'ny Linux

Rehefa nazava amin'ny ankapobeny hoe inona ny fitoeran'entana LXD, andeha isika hieritreritra, ahoana raha misy sehatra mpijinja toy izany izay ahafahanao mampandeha soa aman-tsara ny code ho an'ny mpampiantrano, mamorona grafika, mampifandray ny UI- widgets amin'ny code-nao amin'ny fomba mavitrika (interactively). ampio ny kaody amin'ny lahatsoratra miaraka amin'ny blackjack... formatting? Karazana bilaogy ifanakalozan-kevitra? Oay... tiako izany! Maniry! πŸ™‚

Jereo eo ambanin'ny saka izay halehantsika ao anaty fitoeran-javatra iray jupyter lab - ny taranaka manaraka amin'ny interface interface fa tsy ny Jupyter Notebook efa lany andro, ary hametraka modely Python toy ny NomPy, pandas, matplotlib, IPyWidgets izay ahafahanao manao izay rehetra voatanisa etsy ambony ary mitahiry izany rehetra izany ao anaty rakitra manokana - solosaina IPython.

Famoahana an'i Jupyter amin'ny orbit LXD

Drafitra fiaingana orbital ^

Famoahana an'i Jupyter amin'ny orbit LXD

Andeha hojerentsika ny drafitry ny hetsika fohy hanamora ny fampiharana ny drafitra etsy ambony:

  • Andao hametraka sy hametraka kaontenera mifototra amin'ny kitapo fanapariahana Alpine Linux. Hampiasa ity fizarana ity izahay satria mikendry ny minimalism ary hametraka ny rindrambaiko ilaina indrindra ao anatiny, tsy misy zavatra tafahoatra.
  • Andeha isika hanampy kapila virtoaly fanampiny ao anaty fitoeran-javatra ary omeo anarana - hostfs ary apetaho amin'ny rafitra fichier root. Ity kapila ity dia ahafahana mampiasa rakitra ao amin'ny mpampiantrano avy amin'ny lahatahiry nomena ao anatin'ny fitoeran-javatra. Noho izany, ny angonay dia tsy miankina amin'ny container. Raha voafafa ny kaontenera dia hijanona ao amin'ny mpampiantrano ny angona. Ary koa, ity tetika ity dia ilaina amin'ny fizarana angon-drakitra mitovy amin'ny kaontenera maro nefa tsy mampiasa ny rafitra tambajotra mahazatra amin'ny fizarana kaontenera.
  • Andao hametraka Bash, sudo, ny tranomboky ilaina, ampio sy amboary ny mpampiasa rafitra
  • Andao hametraka Python, modules ary hanangona fiankinan-doha binary ho azy ireo
  • Andao hametraka sy hanomboka jupyter lab, amboary ny bika, asio fanitarana ho azy.

Ato amin'ity lahatsoratra ity dia hanomboka amin'ny fandefasana ny kaontenera isika, tsy handinika ny fametrahana sy ny fanamafisana ny LXD, azonao jerena ao amin'ny lahatsoratra hafa izany rehetra izany - Ny endri-javatra fototra amin'ny LXD - Linux container systems.

Fametrahana sy fanamafisana ny rafitra fototra ^

Mamorona container miaraka amin'ny baiko izay mamaritra ny sary - alpine3, identifier ho an'ny container - jupyterlab ary, raha ilaina, ny mombamomba ny configuration:

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

Eto aho dia mampiasa profil fanamafisana hddroot izay mamaritra ny hamorona fitoeran-javatra misy fizarazarana faka ao Dobo fitahirizana hita ao amin'ny kapila HDD ara-batana:

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

Izany dia manome ahy fahafahana hanao fanandramana amin'ny kaontenera ao amin'ny kapila HDD, mitahiry ny loharanon'ny kapila SSD, izay hita ao amin'ny rafiko ihany koa πŸ™‚ izay namoronako ny mombamomba ny fanamafisana manokana. ssdroot.

Aorian'ny famoronana ny kaontenera dia ao amin'ny fanjakana izy io STOPPED, noho izany dia mila manomboka izany isika amin'ny alΓ lan'ny fampandehanana ny rafitra init ao aminy:

lxc start jupyterlab

Andao hampiseho lisitr'ireo kaontenera ao amin'ny LXD mampiasa ny lakile -c izay manondro izay cfampisehoana olumns:

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

Rehefa namorona ny kaontenera, ny adiresy IP dia nofidina kisendrasendra, satria nampiasa profil fanamafisana izahay default izay efa namboarina teo aloha tao amin'ny lahatsoratra Ny endri-javatra fototra amin'ny LXD - Linux container systems.

Hanova ity adiresy IP ity izahay ho lasa tsy hay hadinoina kokoa amin'ny alΓ lan'ny famoronana fifandraisana amin'ny tamba-jotra eo amin'ny haavon'ny kaontenera, fa tsy amin'ny haavon'ny mombamomba ny fanamafisana toy ny amin'izao fotoana izao. Tsy mila manao an'io ianao fa afaka mitsambikina.

Mamorona interface interface eth0 izay ampifandraisinay amin'ny switch (tetezana tambajotra) lxdbr0 izay namelanay ny NAT araka ny lahatsoratra teo aloha ary ny kaontenera dia afaka miditra amin'ny Internet, ary manome adiresy IP static amin'ny interface - 10.0.5.5:

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

Aorian'ny fampidirana fitaovana dia tsy maintsy averina averina ny fitoeran-javatra:

lxc restart jupyterlab

Fanamarinana ny toetry ny container:

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

Fametrahana rindrambaiko fototra sy fametrahana ny rafitra ^

Mba hitantana ny fitoeranay dia mila mametraka ireto rindrambaiko manaraka ireto ianao:

Package
Description

bash
Ny shell GNU Bourne Again

bash-completion
Fahavitan'ny programmable ho an'ny shell bash

sudo
Omeo ny mpampiasa sasany ny fahafahana manatanteraka baiko sasany ho root

aloka
Fitaovana fitantanana ny tenimiafina sy kaonty miaraka amin'ny fanohanana ny rakitra aloka sy PAM

tzdata
Loharano ho an'ny faritry ny ora sy ny angona momba ny ora andro

Nano
Pico editor clone miaraka amin'ny fanatsarana

Fanampin'izany, azonao atao ny mametraka fanohanana ao amin'ny pejin'ny rafitra amin'ny alΓ lan'ny fametrahana ireto fonosana manaraka ireto βˆ’ man man-pages mdocml-apropos less

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

Andeha hojerentsika ny baiko sy ny fanalahidy nampiasainay:

  • lxc - Antsoy ny mpanjifa LXD
  • exec - Fomba mpanjifa LXD izay mitondra baiko ao anaty fitoeran-javatra
  • jupyterlab - ID kaontenera
  • -- - Fanalahidy manokana izay mamaritra ny tsy fandikana ny fanalahidy fanampiny ho fanalahidin'ny lxc ary ampitao ny tady sisa toy ny amin'ny fitoeran-javatra
  • apk - mpitantana ny fonosana fizarana Alpine Linux
  • add - Fomba mpitantana fonosana izay mametraka fonosana voafaritra aorian'ny baiko

Manaraka izany dia hametraka fe-potoana eo amin'ny rafitra isika Europe/Moscow:

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

Aorian'ny fametrahana ny faritry ny fotoana, ny fonosana tzdata dia tsy ilaina intsony ao amin'ny rafitra, haka toerana, ka aleo hofafana:

lxc exec jupyterlab -- apk del tzdata

Fanamarinana ny faritry ny ora:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Mba tsy handany fotoana be amin'ny fametrahana Bash ho an'ireo mpampiasa vaovao ao anaty kaontenera, amin'ireto dingana manaraka ireto dia handika ny rakitra skel efa vita avy amin'ny rafitra mpampiantrano azy izahay. Izany dia ahafahanao manamboatra Bash ao anaty fitoeran-javatra iray amin'ny fomba interactive. Ny rafitra mpampiantrano ahy dia Manjaro Linux ary ny rakitra adika /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors Amin'ny ankapobeny dia mety amin'ny Alpine Linux izy ireo ary tsy miteraka olana goavana, fa mety manana fizarana hafa ianao ary mila mandinika manokana raha misy hadisoana rehefa mihazakazaka Bash ao anaty container.

Adikao amin'ny fitoeran-javatra ireo rakitra skel. ANDININ- --create-dirs dia hamorona ny lahatahiry ilaina raha tsy misy:

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

Ho an'ny mpampiasa root efa misy, dia adikao ny rakitra skel vao nadika tao amin'ny kaontenera mankany amin'ny lahatahiry an-trano:

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

Alpine Linux dia mametraka shell rafitra ho an'ny mpampiasa /bin/sh, hosoloinay amin'ny root mpampiasa amin'ny Bash:

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

fa root tsy tenimiafina ilay mpampiasa, mila mametraka tenimiafina izy. Ity baiko manaraka ity dia hamorona sy hametraka tenimiafina vaovao ho azy, izay ho hitanao eo amin'ny efijery console aorian'ny famonoana azy:

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

Andeha koa hamorona mpampiasa rafitra vaovao - jupyter izay hamboarinay any aoriana jupyter lab:

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

Andao hamorona sy hametraka tenimiafina ho azy:

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

Manaraka, hanatanteraka baiko roa isika, ny voalohany dia hamorona vondrona rafitra sudo, ary ny faharoa dia hanampy mpampiasa azy jupyter:

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

Andeha hojerentsika hoe iza no vondrona misy ny mpampiasa jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Tsy maninona ny zava-drehetra, andao hiroso.

Avelao ny mpampiasa rehetra izay mpikambana ao amin'ny vondrona sudo mampiasa baiko sudo. Mba hanaovana izany, tanteraho ity script manaraka ity, aiza sed dia manafoana ny tsipika masontsivana ao amin'ny rakitra fikirakirana /etc/sudoers:

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

Fametrahana sy fanamboarana JupyterLab ^

jupyter lab dia fampiharana Python, ka tsy maintsy apetraka aloha ity mpandika teny ity. koa, jupyter lab hametraka amin'ny alΓ lan'ny mpitantana fonosana Python izahay pip, fa tsy ny rafitra iray, satria mety ho lany andro ao amin'ny fitehirizana ny rafitra ary noho izany, mila mamaha ny fiankinan-doha amin'ny tanana isika amin'ny fametrahana ireto fonosana manaraka ireto βˆ’ python3 python3-dev gcc libc-dev zeromq-dev:

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

Andao hanavao ny modules python sy ny mpitantana fonosana pip amin'ny dikan-teny ankehitriny:

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

hametraka jupyter lab amin'ny alΓ lan'ny mpitantana fonosana pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Satria ny fanitarana in jupyter lab dia andrana ary tsy alefa amin'ny fomba ofisialy miaraka amin'ny fonosana jupyterlab, noho izany dia mila mametraka sy manamboatra azy amin'ny tanana isika.

Andao hametraka NodeJS sy ny mpitantana ny fonosana ho azy - NPM, hatramin'ny jupyter lab mampiasa azy ireo amin'ny fanitarana azy:

lxc exec jupyterlab -- apk add nodejs npm

To extensions for jupyter lab izay hapetrakay dia niasa, mila apetraka ao amin'ny lahatahiry mpampiasa izy ireo satria havoaka amin'ny mpampiasa ny fampiharana jupyter. Ny olana dia tsy misy paramètre ao amin'ny baikon'ny fandefasana izay azo ampitaina amin'ny lahatahiry iray; ny fampiharana ihany no manaiky ny fari-piainan'ny tontolo iainana ary noho izany dia tsy maintsy mamaritra izany isika. Mba hanaovana izany, dia hanoratra ny baiko fanondranana miovaova JUPYTERLAB_DIR eo amin'ny tontolon'ny mpampiasa jupyter, mametraka .bashrcizay tanterahina isaky ny miditra ny mpampiasa:

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

Ny baiko manaraka dia hametraka fanitarana manokana - extension manager in jupyter lab:

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

Ankehitriny dia vonona ny zava-drehetra amin'ny fandefasana voalohany jupyter lab, fa mbola afaka mametraka fanitarana mahasoa vitsivitsy izahay:

  • toc - Loha-takelaka, mamorona lisitry ny lohateny ao anaty lahatsoratra/boky
  • jupyterlab-horizon-theme - Lohahevitra UI
  • jupyterlab_neon_theme - Lohahevitra UI
  • jupyterlab-ubu-theme - Iray hafa lohahevitra avy amin'ny mpanoratra ity lahatsoratra ity :) Fa amin'ity tranga ity dia haseho ny fametrahana avy amin'ny tahiry GitHub

Noho izany, tanteraho ireto baiko manaraka ireto mba hametrahana ireto fanitarana ireto:

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"

Aorian'ny fametrahana ny fanitarana dia tsy maintsy manangona azy ireo isika, satria teo aloha, nandritra ny fametrahana, dia nanondro ny fanalahidy --no-build mba hamonjy fotoana. Ankehitriny dia hanafaingana be isika amin'ny fanangonana azy ireo indray mandeha:

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

Ampandehano izao baiko roa manaraka izao mba hampandehanana azy voalohany jupyter lab. Azo atao ny manomboka izany amin'ny baiko iray, fa amin'ity tranga ity, ny baiko fanombohana, izay sarotra hotadidina ao an-tsainao, dia hotsaroan'ny bash ao anaty fitoeran-javatra, fa tsy amin'ny mpampiantrano, izay efa ampy ny baiko. mba hanoratra azy ireo amin'ny tantara :)

Midira ao amin'ny container ho mpampiasa jupyter:

lxc exec jupyterlab -- su -l jupyter

Manaraka, mihazakazaka jupyter lab miaraka amin'ny fanalahidy sy masontsivana araka ny voalaza:

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

Mandehana any amin'ny adiresy ao amin'ny tranonkalanao http://10.0.5.5:8888 ary amin'ny pejy misokatra midira famantarana fidirana izay ho hitanao ao amin'ny console. Adikao ary apetaho eo amin'ny pejy izany, dia tsindrio Hiditra. Aorian'ny fidirana dia mandehana any amin'ny menio fanitarana eo ankavia, araka ny aseho amin'ny sary etsy ambany, izay hanosika anao, rehefa manetsika ny mpitantana fanitarana, handray risika amin'ny fiarovana amin'ny fametrahana fanitarana avy amin'ny antoko fahatelo izay ny baiko. JupyterLab fampandrosoana tsy tompon'andraikitra:

Famoahana an'i Jupyter amin'ny orbit LXD

Na izany aza, mitoka-monina isika rehetra jupyter lab ary apetraho ao anaty kaontenera izany mba tsy ahafahan'ny fanitarana an'ny antoko fahatelo mitaky sy mampiasa ny NodeJS farafaharatsiny mangalatra angon-drakitra ao amin'ny kapila afa-tsy ireo izay sokafantsika ao anaty fitoeran-javatra. Mankanesa any amin'ny antontan-taratasinao manokana momba ny mpampiantrano ao /home Ny dingana avy amin'ny container dia tsy mety hahomby, ary raha manao izany izy ireo, dia mila manana tombontsoa amin'ny rakitra ao amin'ny rafitra mpampiantrano ianao, satria mihazakazaka ny container amin'ny fomba tsy manam-paharoa. Miorina amin'ity fampahalalana ity, azonao atao ny manombana ny mety hisian'ny fanitarana ao jupyter lab.

Namorona kahie IPython (pejy in jupyter lab) dia ho noforonina ao amin'ny lahatahirin'ny mpampiasa ankehitriny - /home/jupyter, fa ny fikasanay dia ny hampisaraka ny angona (mizara) eo amin'ny mpampiantrano sy ny kaontenera, ka miverena any amin'ny console ary atsaharo jupyter lab amin'ny fanatanterahana hotkey - CTRL+C ary mamaly y amin'ny fangatahana. Atsaharo avy eo ny session interactiven'ny mpampiasa jupyter mameno hotkey CTRL+D.

Mizara data amin'ny mpampiantrano ^

Mba hizarana angona amin'ny mpampiantrano dia mila mamorona fitaovana ao amin'ny kaontenera ahafahanao manao izany sy manao izany ianao, araho ity baiko manaraka ity izay amaritanay ireto fanalahidy manaraka ireto:

  • lxc config device add - Ny baiko dia manampy ny firafitry ny fitaovana
  • jupyter - ID ny kaontenera izay ampiana ny config
  • hostfs - ID fitaovana. Afaka mametraka anarana rehetra ianao.
  • disk - Tondroina ny karazana fitaovana
  • path β€” Mamaritra ny lalana ao amin'ny kaontenera izay hametrahan'ny LXD ity fitaovana ity
  • source β€” Lazao ny loharano, ny lalana mankany amin'ny lahatahiry amin'ny mpampiantrano tianao hozaraina amin'ny fitoeran-javatra. Farito ny lalana araka ny safidinao
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Ho an'ny katalaogy /home/dv/projects/ipython-notebooks Ny fahazoan-dΓ lana dia tsy maintsy apetraka amin'ny mpampiasa container izay manana UID mitovy amin'izao fotoana izao SubUID + UID, jereo ny toko Fiarovana. Tombontsoa amin'ny kaontenera ao amin'ny lahatsoratra Ny endri-javatra fototra amin'ny LXD - Linux container systems.

Apetraho amin'ny mpampiantrano ny fahazoan-dΓ lana, izay ho mpampiasa ny kaontenera ny tompony jupyter, ary ny variable $USER dia hamaritra ny mpampiasa mpampiantrano anao ho vondrona:

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

Hello World! ^

Raha mbola manana session console misokatra ao anaty container miaraka amin'ny jupyter lab, dia avereno amin'ny fanalahidy vaovao izany --notebook-dir amin'ny fametrahana ny sandany /mnt/hostfs toy ny lalana mankany amin'ny fakan'ny solosaina finday ao amin'ny fitoeran'ny fitaovana noforoninay tamin'ny dingana teo aloha:

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

Dia mandehana any amin'ny pejy http://10.0.5.5:8888 ary mamorona solosaina findainao voalohany amin'ny fipihana ny bokotra eo amin'ny pejy araka ny aseho amin'ny sary etsy ambany:

Famoahana an'i Jupyter amin'ny orbit LXD

Avy eo, ao amin'ny saha eo amin'ny pejy, ampidiro ny code Python izay hampiseho ny mahazatra Hello World!. Rehefa vita ny fidirana dia tsindrio CTRL+ENTER na ny bokotra "milalao" eo amin'ny barazy eo an-tampony mba hahatonga an'i JupyterLab hanao izao:

Famoahana an'i Jupyter amin'ny orbit LXD

Amin'izao fotoana izao, saika ny zava-drehetra dia efa vonona hampiasaina, saingy tsy mahaliana izany raha tsy mametraka modules Python fanampiny (fampiharana feno) izay afaka manitatra be ny fahaizan'ny Python amin'ny jupyter lab, noho izany, andao hiroso :)

PS Ny mahaliana dia ny fampiharana taloha jupyter eo ambanin'ny anarana kaody Jupyter Notebook tsy lasa ary misy mifanaraka amin'izany jupyter lab. Raha hifindra amin'ny dikan-teny taloha, araho ny rohy manampy ny tovana amin'ny adiresy/tree, ary ny fifindrana amin'ny dikan-teny vaovao dia atao miaraka amin'ny tovana /lab, fa tsy voatery ho voafaritra:

Manitatra ny fahaizan'ny Python ^

Ato amin'ity fizarana ity dia hametraka modules fiteny Python mahery vaika toy ny NomPy, pandas, matplotlib, IPyWidgets ny vokatr'izany dia ampidirina amin'ny solosaina finday jupyter lab.

Alohan'ny hametrahana ireo maody Python voatanisa amin'ny alΓ lan'ny mpitantana ny fonosana pip tsy maintsy mamaha ny fiankinan'ny rafitra amin'ny Alpine Linux aloha isika:

  • g++ - Ilaina amin'ny fanangonana modules, satria ny sasany amin'izy ireo dia ampiharina amin'ny fiteny C ++ ary mifandray amin'ny Python amin'ny fotoana fampandehanana toy ny modules binary
  • freetype-dev - fiankinan-doha amin'ny module Python matplotlib

Fametrahana miankina:

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

Misy olana iray: amin'ny toetry ny fizarana Alpine Linux amin'izao fotoana izao, dia tsy azo atao ny manangona ny dikan-teny NumPy vaovao; hisy hadisoana amin'ny fanangonana izay tsy ho vitako:

ERROR: Tsy afaka nanamboatra kodiarana ho an'ny numpy izay mampiasa PEP 517 ary tsy azo apetraka mivantana

Noho izany, hametraka ity mΓ΄dely ity ho toy ny fonosana rafitra izay mizara dikan-teny efa voaangona, saingy antitra kokoa noho izay hita ao amin'ny tranokala amin'izao fotoana izao:

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

Manaraka, apetraho ny modules Python amin'ny alΓ lan'ny mpitantana ny fonosana pip. Azafady, mahareta fa hatambatra ny modules sasany ary mety haharitra minitra vitsivitsy. Ao amin'ny masiniko, naharitra ~ 15 minitra ny fanangonana:

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

Manadio ny cache fametrahana:

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

Fitsapana modules ao amin'ny JupyterLab ^

Raha mihazakazaka ianao jupyter lab, avereno indray izany mba hihetsika ireo maody vao napetraka. Mba hanaovana izany, amin'ny fivoriana console, tsindrio CTRL+C izay anananao azy ary midira y hampitsahatra ny fangatahana ary manomboka indray jupyter lab amin'ny fanindriana ny zana-tsipìka miakatra eo amin'ny klavier mba tsy hiditra ny baiko indray ary avy eo Enter hanombohana azy:

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

Mandehana mankany amin'ny pejy http://10.0.5.5:8888/lab na havaozy ny pejy amin'ny navigateur, ary ampidiro ao amin'ny sela kahie vaovao ity kaody manaraka ity:

%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

Tokony hahazo vokatra toy ny amin'ny sary etsy ambany ianao, aiza IPyWidgets mamorona singa UI amin'ny pejy izay mifandray amin'ny kaody loharano, ary koa matplotlib dia mampiseho ny vokatry ny kaody amin'ny endrika sary ho toy ny grafika asa:

Famoahana an'i Jupyter amin'ny orbit LXD

Ohatra maro IPyWidgets azonao jerena ao amin'ny lesona eto

Dia inona koa? ^

Tsara raha nijanona ianao ary nahatratra ny faran'ny lahatsoratra. Niniako tsy nandefa script efa vita tany amin'ny faran'ny lahatsoratra izay hametraka jupyter lab amin'ny "click iray" mba hamporisihana ny mpiasa :) Saingy azonao atao ny manao izany, satria efa fantatrao ny fomba, rehefa nanangona ny baiko tao anaty script Bash tokana :)

Azonao atao koa ny:

  • Mametraha anaran-tambajotra ho an'ny kaontenera fa tsy adiresy IP amin'ny fanoratana azy amin'ny teny tsotra /etc/hosts ary soraty ao amin'ny navigateur ny adiresy http://jupyter.local:8888
  • Milalao miaraka amin'ny fetran'ny loharanon-karena ho an'ny kaontenera, mba vakio ny toko ao fototra LXD fahaiza-manao na mahazo fampahalalana bebe kokoa amin'ny tranokala mpamorona LXD.
  • Hanova ny lohahevitra:

Famoahana an'i Jupyter amin'ny orbit LXD

Ary mbola betsaka kokoa azonao atao! Izay ihany. Mirary fahombiazana ho anao aho!

VAOVAO: 15.04.2020/18/30 XNUMX:XNUMX - Nahitsy ny lesoka ao amin'ny toko "Manahoana, izao tontolo izao!"
VAOVAO: 16.04.2020/10/00 XNUMX:XNUMX - Nahitsy sy nampiana lahatsoratra amin'ny famaritana ny fampahavitrihana ny mpitantana fanitarana jupyter lab
VAOVAO: 16.04.2020/10/40 XNUMX:XNUMX - Nahitsy ny lesoka hita tao amin'ny lahatsoratra ary niova kely ho tsara kokoa ny toko "Fametrahana rindrambaiko fototra sy fametrahana ny rafitra"

Source: www.habr.com

Add a comment