Jupyter LXD orbitan abiarazten

Inoiz esperimentatu behar izan al duzu kodea edo sistemaren utilitateekin Linux-en, oinarrizko sistemaz ez kezkatzeko eta erro-pribilegioekin exekutatu beharko lukeen kodean akatsen bat gertatuz gero dena ez botatzeko?

Baina zer gertatzen da, demagun hainbat mikrozerbitzuen multzo osoa probatu edo exekutatu behar duzula makina batean? Ehun edo mila ere bai?

Hipervisore batek kudeatutako makina birtualekin, horrelako arazoak konpondu daitezke eta konponduko dira, baina zer kostutan? Adibidez, Alpine Linux banaketan oinarritutako LXD-ko edukiontzi batek bakarrik kontsumitzen du 7.60MB RAM, eta erroko partizioak non okupatzen duen abiarazi ondoren 9.5MB! Nola gustatzen zaizu hori, Elon Musk? Irtetea gomendatzen dut LXD-ren oinarrizko gaitasunak - Linux-en edukiontzi-sistema

Orokorrean LXD edukiontziak zer diren argi geratu ondoren, goazen harago eta pentsa dezagun, zer gertatuko balitz horrelako bilketa-plataforma bat non ostalariarentzat kodea segurtasunez exekutatu, grafikoak sortu, UI- widget-ak zure kodearekin modu dinamikoan (interaktiboki) lotu ahal izateko, Osatu kodea testuarekin blackjack-arekin... formatua? Blog interaktiboren bat? Aupa... nahi dut! Nahi! πŸ™‚

Begiratu katuaren azpian non botako dugun edukiontzi batean jupyter laborategia - Erabiltzaile-interfazearen hurrengo belaunaldia Jupyter Koaderno zaharkituaren ordez, eta Python moduluak ere instalatuko ditugu. Zenbakia, pandas, matplotlib, IPyWidgets horrek goian zerrendatutako guztia egin eta fitxategi berezi batean gordetzeko aukera emango dizu: IPython ordenagailu eramangarri batean.

Jupyter LXD orbitan abiarazten

Irteera orbitaleko plana ^

Jupyter LXD orbitan abiarazten

Azal dezagun ekintza-plan labur bat goiko eskema ezartzea errazteko:

  • Instalatu eta abiarazi dezagun banaketa-kitean oinarritutako edukiontzi bat Linux Alpine. Banaketa hau erabiliko dugu, minimalismora zuzenduta dagoelako eta bertan beharrezkoa den softwarea bakarrik instalatuko dugulako, ezer soberan.
  • Gehitu dezagun disko birtual gehigarri bat edukiontzian eta eman izena - hostfs eta muntatu erroko fitxategi-sisteman. Disko honek edukiontzi barruko direktorio jakin bateko ostalari fitxategiak erabiltzeko aukera emango du. Horrela, gure datuak edukiontzitik independenteak izango dira. Edukiontzia ezabatzen bada, datuak ostalarian geratuko dira. Gainera, eskema hau erabilgarria da edukiontzi askoren artean datu berdinak partekatzeko edukiontzien banaketaren sare-mekanismo estandarrak erabili gabe.
  • Instala ditzagun Bash, sudo, beharrezko liburutegiak, gehitu eta konfigura ditzagun sistemaren erabiltzaile bat
  • Instalatu ditzagun Python, moduluak eta konpila ditzagun haien menpekotasun bitarrak
  • Instalatu eta abiarazi dezagun jupyter laborategia, pertsonalizatu itxura, instalatu horretarako luzapenak.

Artikulu honetan edukiontzia abiarazten hasiko gara, ez dugu LXD instalatzea eta konfiguratzea kontuan hartuko, hori guztia beste artikulu batean aurki dezakezu - LXD - Linux edukiontzi sistemen oinarrizko ezaugarriak.

Oinarrizko sistemaren instalazioa eta konfigurazioa ^

Irudia zehazten dugun komandoarekin edukiontzi bat sortzen dugu - alpine3, edukiontziaren identifikatzailea - jupyterlab eta, behar izanez gero, konfigurazio-profilak:

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

Hemen konfigurazio profil bat erabiltzen ari naiz hddroot erroko partizioa duen edukiontzi bat sortzea zehazten duena Biltegiratze Igerilekua HDD disko fisiko batean kokatuta dago:

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

Honek aukera ematen dit HDD diskoko edukiontziekin esperimentatzeko, SSD diskoaren baliabideak gordez, eta hori ere eskuragarri dago nire sisteman πŸ™‚ eta horretarako konfigurazio profil bereizia sortu dut. ssdroot.

Edukiontzia sortu ondoren, egoeran dago STOPPED, beraz, bertan init sistema exekutatzen hasi behar dugu:

lxc start jupyterlab

Bistaratu dezagun LXDn edukiontzien zerrenda tekla erabiliz -c zein adierazten duen czutabeen bistaratzea:

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

Edukiontzia sortzerakoan, IP helbidea ausaz aukeratu zen, konfigurazio profil bat erabili genuen eta default artikuluan aurretik konfiguratuta zegoena LXD - Linux edukiontzi sistemen oinarrizko ezaugarriak.

IP helbide hau gogoangarriago batera aldatuko dugu edukiontzi mailan sare-interfaze bat sortuz, eta ez konfigurazio-profilaren mailan, oraingo konfigurazioan dagoen bezala. Ez duzu hau egin behar, saltatu dezakezu.

Sareko interfazea sortzea eth0 etengailuarekin lotzen duguna (sare-zubia) lxdbr0 bertan NAT gaitu genuen aurreko artikuluaren arabera eta edukiontziak orain Interneterako sarbidea izango du, eta IP helbide estatiko bat ere esleitzen diogu interfazeari - 10.0.5.5:

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

Gailu bat gehitu ondoren, edukiontzia berrabiarazi behar da:

lxc restart jupyterlab

Edukiontziaren egoera egiaztatzea:

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

Oinarrizko softwarea instalatzea eta sistema konfiguratzea ^

Gure edukiontzia administratzeko, software hau instalatu behar duzu:

Package
Deskribapena

golpear
GNU Bourne Again shell-a

bash-osaketa
Bash shell-erako osaera programagarria

sudo
Eman zenbait erabiltzaileri komando batzuk root gisa exekutatzeko gaitasuna

itzala
Pasahitzak eta kontuak kudeatzeko tresna multzoa itzal fitxategietarako eta PAMetarako laguntzarekin

tzdata
Ordu-eremuaren eta udako ordutegiaren datuen iturriak

nano
Pico editorearen klona hobekuntzarekin

Gainera, euskarria instala dezakezu sistemako esku orrietan pakete hauek instalatuz: - man man-pages mdocml-apropos less

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

Ikus ditzagun erabili ditugun komando eta teklak:

  • lxc β€” Deitu LXD bezeroari
  • exec - Edukiontzian komando bat exekutatzen duen LXD bezero metodoa
  • jupyterlab β€” Edukiontziaren IDa
  • -- - Tekla gehiago gako gisa ez interpretatzea zehazten duen gako berezi bat lxc eta gainontzeko katea den bezala pasa ontzira
  • apk β€” Alpine Linux banaketa paketeen kudeatzailea
  • add β€” Komandoaren ondoren zehaztutako paketeak instalatzen dituen pakete-kudeatzaile metodoa

Ondoren, ordu-eremu bat ezarriko dugu sisteman Europe/Moscow:

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

Ordu-eremua instalatu ondoren, paketea tzdata jada ez da beharrezkoa sisteman, lekua hartuko du, beraz, ezabatu dezagun:

lxc exec jupyterlab -- apk del tzdata

Ordu-eremua egiaztatzea:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Edukiontzian Bash erabiltzaile berrientzako konfiguratzen denbora asko ez igarotzeko, hurrengo urratsetan ostalari sistematik prestatutako skel fitxategiak kopiatuko ditugu. Honek Bash edukiontzi batean edertzeko aukera emango dizu interaktiboki. Nire ostalari-sistema Manjaro Linux da eta kopiatzen ari diren fitxategiak /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors printzipioz Alpine Linuxerako egokiak dira eta ez dute arazo larririk sortzen, baina baliteke banaketa ezberdin bat izatea eta modu independentean asmatu behar duzu Bash edukiontzian exekutatzen duzunean errorerik dagoen ala ez.

Kopiatu skel fitxategiak edukiontzira. Gakoa --create-dirs beharrezkoak diren direktorioak sortuko ditu existitzen ez badira:

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

Lehendik dagoen root erabiltzailearentzat, kopiatu edukiontzian kopiatu berri diren skel fitxategiak hasierako direktoriora:

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-ek sistema shell bat instalatzen du erabiltzaileentzat /bin/sh, ordezkatuko dugu root Bash-en erabiltzailea:

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

That root erabiltzailea ez zegoen pasahitzik, pasahitz bat ezarri behar du. Komando honek ausazko pasahitz berri bat sortu eta ezarriko du harentzat, exekutatu ondoren kontsolaren pantailan ikusiko duzuna:

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

Era berean, sor dezagun sistemaren erabiltzaile berri bat - jupyter horretarako geroago konfiguratuko dugu jupyter laborategia:

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

Sortu eta ezarri dezagun pasahitz bat:

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

Ondoren, bi komando exekutatuko ditugu, lehenengoak sistema talde bat sortuko du sudo, eta bigarrenak erabiltzaile bat gehituko dio jupyter:

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

Ikus dezagun zein taldetakoa den erabiltzailea jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Dena ondo dago, goazen aurrera.

Baimendu taldeko kide diren erabiltzaile guztiei sudo erabili komandoa sudo. Horretarako, exekutatu script hau, non sed parametro-lerroari iruzkinak kentzen dizkio konfigurazio fitxategian /etc/sudoers:

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

JupyterLab instalatzea eta konfiguratzea ^

jupyter laborategia Python aplikazio bat da, beraz, lehenik eta behin interprete hau instalatu behar dugu. Gainera, jupyter laborategia Python pakete kudeatzailea erabiliz instalatuko dugu pip, eta ez sistemarena, sistemaren biltegian zaharkituta egon daitekeelako eta, beraz, eskuz konpondu behar ditugu honen menpekotasunak pakete hauek instalatuz - python3 python3-dev gcc libc-dev zeromq-dev:

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

Eguneratu ditzagun python moduluak eta paketeen kudeatzailea pip egungo bertsiora:

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

Ezarri jupyter laborategia pakete-kudeatzailearen bidez pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Luzapenak barne jupyter laborategia esperimentalak dira eta ez dira ofizialki jupyterlab paketearekin bidaltzen, beraz, eskuz instalatu eta konfiguratu behar dugu.

Instalatu ditzagun NodeJS eta horretarako paketeen kudeatzailea - NPM, geroztik jupyter laborategia bere luzapenetarako erabiltzen ditu:

lxc exec jupyterlab -- apk add nodejs npm

Luzapenetara jupyter laborategia lan eginda instalatuko ditugunak, erabiltzailearen direktorioan instalatu behar dira aplikazioa erabiltzailearengandik abiaraziko baita jupyter. Arazoa da abiarazteko komandoan direktorio batera pasa daitekeen parametrorik ez dagoela; aplikazioak ingurune-aldagai bat bakarrik onartzen du eta, beraz, definitu behar dugu. Horretarako, esportazio aldagaiaren komandoa idatziko dugu JUPYTERLAB_DIR erabiltzailearen ingurunean jupyter, artxibatzeko .bashrcerabiltzailea saioa hasten den bakoitzean exekutatzen dena:

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

Hurrengo komandoak luzapen berezi bat instalatuko du - luzapen kudeatzailea jupyter laborategia:

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

Orain dena prest dago lehen abiarazterako jupyter laborategia, baina luzapen erabilgarri batzuk instala ditzakegu oraindik:

  • toc β€” Aurkibidea, artikulu/koaderno batean goiburuen zerrenda sortzen du
  • jupyterlab-horizon-theme - UI gaia
  • jupyterlab_neon_theme - UI gaia
  • jupyterlab-ubu-theme - Beste bat egilearen gaia artikulu hau :) Baina kasu honetan, GitHub biltegiko instalazioa erakutsiko da

Beraz, exekutatu komando hauek sekuentzialki luzapen hauek instalatzeko:

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"

Luzapenak instalatu ondoren, konpilatu behar ditugu, aurretik, instalazioan, gakoa zehaztu baikenuen --no-build denbora aurrezteko. Orain nabarmen azkartuko dugu elkarrekin konpilatuz:

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

Orain exekutatu hurrengo bi komandoak lehen aldiz exekutatzeko jupyter laborategia. Komando bakarrarekin abiarazteko aukera izango litzateke, baina kasu honetan, zure buruan gogoratzen zaila den abiarazteko komandoa bash-ekin gogoratuko da edukiontzian, eta ez ostalarian, dagoeneko nahikoa komando dauden tokian. historian grabatzeko :)

Hasi saioa edukiontzian erabiltzaile gisa jupyter:

lxc exec jupyterlab -- su -l jupyter

Jarraian, korrika jupyter laborategia adierazitako gako eta parametroekin:

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

Joan helbidera zure web arakatzailean http://10.0.5.5:8888 eta irekitzen den orrian sartu token kontsolan ikusiko duzun sarbidea. Kopiatu eta itsatsi orrialdean, eta egin klik Saioa hasi. Saioa hasi ondoren, joan ezkerreko luzapenen menura, beheko irudian ikusten den moduan, non luzapen-kudeatzailea aktibatzen duzunean segurtasun-arriskuak hartzeko eskatuko zaizu komandoa duten hirugarrenen luzapenak instalatuz. JupyterLab garapena ez da ardurarik:

Jupyter LXD orbitan abiarazten

Hala ere, osoa isolatzen ari gara jupyter laborategia eta jarri edukiontzi batean, NodeJS behar eta erabiltzen duten hirugarrenen luzapenek ezin ditzaten gutxienez diskoan edukiontzi barruan irekitzen ditugun datuak lapurtu. Lortu zure dokumentu pribatuetara ostalarian /home edukiontziko prozesuek nekez arrakasta izango dute, eta hala egiten badute, sistema ostalariko fitxategietan pribilegioak izan behar dituzu, edukiontzia exekutatzen baitugu. pribilegiorik gabeko modua. Informazio horretan oinarrituta, luzapenak barne sartzeko arriskua ebalua dezakezu jupyter laborategia.

IPython koadernoak sortu ditu (orriak jupyter laborategia) orain erabiltzailearen hasierako direktorioan sortuko da - /home/jupyter, baina gure asmoak datuak (partekatzea) ostalariaren eta edukiontziaren artean banatzea da, beraz, itzuli kontsolara eta gelditu jupyter laborategia laster tekla exekutatuz - CTRL+C eta erantzuten y eskatuta. Ondoren, amaitu erabiltzailearen saio interaktiboa jupyter laster-tekla bat osatuz CTRL+D.

Ostalariarekin datuak partekatzea ^

Ostalariarekin datuak partekatzeko, gailu bat sortu behar duzu hori egiteko aukera ematen dizun edukiontzian eta, horretarako, exekutatu komando hau non gako hauek zehazten ditugun:

  • lxc config device add β€” Komandoak gailuaren konfigurazioa gehitzen du
  • jupyter β€” Konfigurazioa gehitzen zaion edukiontziaren IDa
  • hostfs β€” Gailuaren IDa. Edozein izen ezar dezakezu.
  • disk β€” Gailu mota adierazten da
  • path β€” LXD-k gailu hau muntatuko duen edukiontziko bidea zehazten du
  • source β€” Zehaztu iturburua, edukiontziarekin partekatu nahi duzun ostalariaren direktoriorako bidea. Zehaztu bidea zure hobespenen arabera
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Katalogorako /home/dv/projects/ipython-notebooks baimena ezarri behar zaio gaur egun UID berdina duen edukiontziaren erabiltzaileari SubUID + UID, ikusi kapitulua Segurtasuna. Edukiontzien Pribilegioak artikuluan LXD - Linux edukiontzi sistemen oinarrizko ezaugarriak.

Ezarri baimena ostalariari, non jabea edukiontziaren erabiltzailea izango den jupyter, eta aldagaia $USER talde gisa zure ostalari erabiltzailea zehaztuko du:

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

Kaixo Mundua! ^

Oraindik edukiontzian kontsola saio bat irekita baduzu jupyter laborategia, gero berrabiarazi gako berri batekin --notebook-dir balioa ezarriz /mnt/hostfs Aurreko urratsean sortu genuen gailurako edukiontziko ordenagailu eramangarrien errorako bidea bezala:

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

Ondoren, joan orrialdera http://10.0.5.5:8888 eta sortu zure lehen ordenagailu eramangarria orrialdeko botoian klik eginez beheko irudian ikusten den moduan:

Jupyter LXD orbitan abiarazten

Ondoren, orrialdeko eremuan, idatzi klasikoa bistaratuko duen Python kodea Hello World!. Sartzen amaitu duzunean, sakatu CTRL+ENTER edo goiko aldean dagoen tresna-barrako "erreproduzitu" botoia JupyterLab-ek hau egin dezan:

Jupyter LXD orbitan abiarazten

Une honetan, ia dena prest dago erabiltzeko, baina ez da interesgarria izango Python-en gaitasun estandarrak nabarmen handitu ditzaketen Python modulu gehigarriak (aplikazio osoak) instalatzen ez baditugu. jupyter laborategia, beraz, goazen aurrera :)

PS Gauza interesgarria da inplementazio zaharra jupiter kode izenpean Jupyter Notebook ez da desagertu eta paraleloan existitzen da jupyter laborategia. Bertsio zaharrera aldatzeko, jarraitu esteka helbidean atzizkia gehituz/tree, eta bertsio berrirako trantsizioa atzizkiarekin egiten da /lab, baina ez da zehaztu behar:

Python-en gaitasunak zabaltzea ^

Atal honetan, Python hizkuntza-modulu indartsuak instalatuko ditugu Zenbakia, pandas, matplotlib, IPyWidgets horien emaitzak ordenagailu eramangarrietan integratuta daude jupyter laborategia.

Zerrendatutako Python moduluak pakete-kudeatzailearen bidez instalatu aurretik pip lehenik eta behin sistemaren mendekotasunak konpondu behar ditugu Alpine Linux-en:

  • g++ β€” Moduluak osatzeko beharrezkoa da, horietako batzuk hizkuntzan inplementatuta baitaude C ++ eta konektatu Python-era exekuzio garaian modulu bitar gisa
  • freetype-dev - Python modulurako menpekotasuna matplotlib

Mendekotasunak instalatzea:

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

Arazo bat dago: Alpine Linux banaketaren egungo egoeran, ezin izango da NumPy-ren bertsio berria konpilatu; konpondu ezin izan dudan konpilazio-errore bat agertuko da:

ERROR: Ezin izan dira eraiki PEP 517 erabiltzen duten numpyrentzat eta ezin dira zuzenean instalatu

Hori dela eta, modulu hau dagoeneko konpilatutako bertsio bat banatzen duen sistema pakete gisa instalatuko dugu, baina gaur egun gunean eskuragarri dagoena baino apur bat zaharragoa:

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

Ondoren, instalatu Python moduluak pakete-kudeatzailearen bidez pip. Mesedez, izan pazientzia, modulu batzuk konpilatu egingo baitira eta minutu batzuk behar izan ditzaketelako. Nire makinan, konpilazioak ~15 minutu behar izan zituen:

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

Instalazio-cacheak garbitzea:

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

JupyterLab-en moduluak probatzea ^

Korrika egiten ari bazara jupyter laborategia, berrabiarazi instalatu berri diren moduluak aktibatu daitezen. Horretarako, kontsola saio batean, egin klik CTRL+C non duzu martxan eta sartu y eskaera gelditzeko eta berriro hasteko jupyter laborategia teklatuan gorako gezia sakatuz komandoa berriro ez sartzeko eta gero Enter hasteko:

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

Joan orrialdera http://10.0.5.5:8888/lab edo freskatu orria zure arakatzailean, eta idatzi kode hau koadernoko gelaxka berri batean:

%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

Beheko irudian bezalako emaitza lortu beharko zenuke, non IPyWidgets iturburu-kodearekin interaktiboki elkarreragiten duen UI elementu bat sortzen du orrialdean, eta gainera matplotlib kodearen emaitza irudi baten moduan bistaratzen du funtzio grafiko gisa:

Jupyter LXD orbitan abiarazten

Adibide asko IPyWidgets tutorialetan aurki dezakezu Hemen

Zer gehiago? ^

Ondo geratu bazara eta artikuluaren amaierara iritsi bazara. Nahita ez nuen instalatuko zen artikuluaren amaieran prest egindako gidoirik argitaratu jupyter laborategia "Klik bakarrean" langileak animatzeko :) Baina zuk zeuk egin dezakezu, dagoeneko badakizu nola, komandoak Bash script bakar batean bilduta :)

Hona hemen ere:

  • Ezarri sare-izen bat edukiontziari IP helbide baten ordez, sinple batean idatziz /etc/hosts eta idatzi helbidea arakatzailean http://jupyter.local:8888
  • Jolastu edukiontziaren baliabide-mugarekin, horretarako irakurri kapitulua LXD oinarrizko gaitasunak edo lortu informazio gehiago LXD garatzaileen gunean.
  • Aldatu gaia:

Jupyter LXD orbitan abiarazten

Eta askoz gehiago egin dezakezu! Hori da dena. Arrakasta opa dizut!

EGUNERAZIOA: 15.04.2020/18/30 XNUMX:XNUMX - "Kaixo, Mundua!" kapituluko akatsak zuzendu dira.
EGUNERAZIOA: 16.04.2020/10/00 XNUMX:XNUMX β€” Testua zuzendu eta gehitu da luzapen-kudeatzailearen aktibatzeko deskribapenean jupyter laborategia
EGUNERAZIOA: 16.04.2020/10/40 XNUMX:XNUMX β€” Testuan aurkitutako akatsak zuzendu eta apur bat aldatu da "Oinarrizko softwarea instalatzea eta sistema konfiguratzea" kapitulua hobetzeko.

Iturria: www.habr.com

Gehitu iruzkin berria