Jupyterin laukaisu LXD-kiertoradalle

Oletko koskaan joutunut kokeilemaan koodia tai järjestelmäapuohjelmia Linuxissa, jotta et olisi murehtinut perusjärjestelmästä etkä repiisi kaikkea, jos koodissa tulee virhe, jonka pitäisi toimia pääkäyttäjän oikeuksin?

Mutta entä se, että sanotaan, että sinun on testattava tai suoritettava kokonainen klusteri erilaisia ​​mikropalveluita yhdellä koneella? Sata tai jopa tuhat?

Hypervisorin hallitsemilla virtuaalikoneilla tällaiset ongelmat voidaan ratkaista ja ratkaistaan, mutta millä hinnalla? Esimerkiksi Alpine Linux -jakeluun perustuva LXD-säilö kuluttaa vain 7.60MB RAM ja missä juuriosio on käynnistyksen jälkeen 9.5MB! Mitä pidät siitä, Elon Musk? Suosittelen tarkistamaan LXD:n perusominaisuudet - konttijärjestelmä Linuxissa

Kun yleisellä tasolla on käynyt selväksi, mitä LXD-kontit ovat, mennään pidemmälle ja mietitään, mitä jos olisi sellainen harvesterialusta, jossa voisi turvallisesti ajaa koodia isännälle, generoida kaavioita, linkittää dynaamisesti (interaktiivisesti) UI-widgettejä koodiisi, täydentää koodia tekstillä blackjack...-muotoilulla? Jonkinlainen interaktiivinen blogi? Vau... haluan sen! Haluta! 🙂

Katso kissan alta, josta lanseeraamme kontissa jupyter lab - seuraavan sukupolven käyttöliittymä vanhentuneen Jupyter Notebookin tilalle, ja asennamme myös Python-moduuleja, kuten nuhjuinen, Panda, Matplotlib, IPyWidgetit jonka avulla voit tehdä kaiken yllä mainitun ja tallentaa sen kaikki erityiseen tiedostoon - IPython-kannettavaan.

Jupyterin laukaisu LXD-kiertoradalle

Orbitaalinen noususuunnitelma ^

Jupyterin laukaisu LXD-kiertoradalle

Tehdään lyhyt toimintasuunnitelma, joka helpottaa yllä olevan järjestelmän toteuttamista:

  • Asennetaan ja käynnistetään jakelusarjaan perustuva kontti Alpine Linux. Käytämme tätä jakelua, koska se on suunnattu minimalismiin ja asentaa siihen vain tarpeellisimmat ohjelmistot, ei mitään tarpeetonta.
  • Lisätään säilöön ylimääräinen virtuaalilevy ja annetaan sille nimi - hostfs ja liitä se juuritiedostojärjestelmään. Tämä levy mahdollistaa tiedostojen käytön isännässä annetusta hakemistosta säilön sisällä. Siten tietomme ovat riippumattomia säiliöstä. Jos säilö poistetaan, tiedot säilyvät isännässä. Tämä menetelmä on myös hyödyllinen jaettaessa samaa dataa useiden säilöjen välillä ilman konttijakelun vakioverkkomekanismeja.
  • Asennetaan Bash, sudo, tarvittavat kirjastot, lisätään ja määritetään järjestelmän käyttäjä
  • Asennetaan Python, moduulit ja käännetään niille binääririippuvuudet
  • Asennetaan ja käynnistetään jupyter lab, mukauta ulkoasua ja asenna siihen laajennuksia.

Tässä artikkelissa aloitamme kontin käynnistämisellä, emme harkitse LXD:n asentamista ja määrittämistä, löydät kaiken tämän toisesta artikkelista - LXD - Linux-konttijärjestelmien perusominaisuudet.

Perusjärjestelmän asennus ja konfigurointi ^

Luomme säilön komennolla, jossa määritämme kuvan - alpine3, kontin tunniste - jupyterlab ja tarvittaessa kokoonpanoprofiilit:

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

Tässä käytän määritysprofiilia hddroot joka määrittää, että luodaan säilö, jossa on juuriosio Varastointiallas sijaitsee fyysisellä kiintolevyllä:

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

Tämä antaa minulle mahdollisuuden kokeilla HDD-levyllä olevia kontteja säästäen SSD-levyn resursseja, mikä on saatavilla myös järjestelmässäni 🙂 jolle olen luonut erillisen konfigurointiprofiilin ssdroot.

Kun säilö on luotu, se on tilassa STOPPED, joten meidän on käynnistettävä se suorittamalla siinä oleva init-järjestelmä:

lxc start jupyterlab

Näytetään konttiluettelo LXD:ssä näppäimen avulla -c joka osoittaa mitä cpylväiden näyttö:

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

Säilöä luotaessa IP-osoite valittiin satunnaisesti, koska käytimme konfigurointiprofiilia default joka oli aiemmin määritetty artikkelissa LXD - Linux-konttijärjestelmien perusominaisuudet.

Muutamme tämän IP-osoitteen mieleenpainuvammaksi luomalla verkkorajapinnan säilötasolla, ei konfigurointiprofiilitasolla, kuten se on nyt nykyisessä kokoonpanossa. Sinun ei tarvitse tehdä tätä, voit ohittaa sen.

Verkkoliittymän luominen eth0 jonka linkitämme kytkimeen (verkkosilta) lxdbr0 jossa otimme NAT:n käyttöön edellisen artikkelin mukaisesti ja kontti saa nyt pääsyn Internetiin, ja lisäksi annamme käyttöliittymälle staattisen IP-osoitteen - 10.0.5.5:

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

Kun laite on lisätty, säilö on käynnistettävä uudelleen:

lxc restart jupyterlab

Säilön tilan tarkistaminen:

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

Perusohjelmiston asennus ja järjestelmän asennus ^

Säilön hallinnointia varten sinun on asennettava seuraava ohjelmisto:

Paketti
Kuvaus

kemut
GNU Bourne Again -kuori

bash-täydennys
Ohjelmoitava täydennys bash-kuorelle

sudo
Anna tietyille käyttäjille mahdollisuus suorittaa joitain komentoja pääkäyttäjänä

varjo
Salasana- ja tilinhallintatyökalupaketti, joka tukee varjotiedostoja ja PAM:ia

tzdata
Aikavyöhyke- ja kesäaikatietojen lähteet

nano
Pico-editorin klooni parannuksilla

Lisäksi voit asentaa tuen järjestelmän man-sivuille asentamalla seuraavat paketit − man man-pages mdocml-apropos less

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

Katsotaanpa käyttämiämme komentoja ja näppäimiä:

  • lxc — Soita LXD-asiakkaalle
  • exec - LXD-asiakasmenetelmä, joka suorittaa komennon säilössä
  • jupyterlab — Säilön tunnus
  • -- - Erityinen avain, joka määrittää, ettei muita avaimia tulkita avaimina lxc ja välitä loput merkkijonosta sellaisenaan säiliöön
  • apk — Alpine Linux -jakelupakettien hallinta
  • add — Paketinhallintamenetelmä, joka asentaa komennon jälkeen määritetyt paketit

Seuraavaksi asetamme aikavyöhykkeen järjestelmässä Europe/Moscow:

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

Aikavyöhykkeen asennuksen jälkeen paketti tzdata ei enää tarvita järjestelmässä, se vie tilaa, joten poistetaan se:

lxc exec jupyterlab -- apk del tzdata

Aikavyöhykkeen tarkistaminen:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Jotta Bashin asettamiseen uusille käyttäjille ei kuluisi paljon aikaa, seuraavissa vaiheissa kopioimme valmiit skel-tiedostot isäntäjärjestelmästä siihen. Tämän avulla voit kaunistaa Bashia säilössä interaktiivisesti. Isäntäjärjestelmäni on Manjaro Linux ja tiedostot kopioidaan /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors periaatteessa ne sopivat Alpine Linuxille eivätkä aiheuta kriittisiä ongelmia, mutta sinulla voi olla eri jakelu ja sinun on selvitettävä itsenäisesti, onko Bashia suoritettaessa säiliössä virhe.

Kopioi skel-tiedostot säiliöön. Avain --create-dirs luo tarvittavat hakemistot, jos niitä ei ole:

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

Kopioi olemassa olevalle pääkäyttäjälle juuri säilöön kopioidut skel-tiedostot kotihakemistoon:

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 asentaa käyttäjille järjestelmäkuoren /bin/sh, korvaamme sen root käyttäjä Bashissa:

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

Että root käyttäjä ei ollut salasanaton, hänen on asetettava salasana. Seuraava komento luo ja asettaa hänelle uuden satunnaisen salasanan, jonka näet konsolin näytöllä sen suorittamisen jälkeen:

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

Luodaan myös uusi järjestelmäkäyttäjä - jupyter jota varten määritämme myöhemmin jupyter lab:

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

Luodaan ja asetetaan sille salasana:

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

Seuraavaksi suoritamme kaksi komentoa, joista ensimmäinen luo järjestelmäryhmän sudo, ja toinen lisää siihen käyttäjän jupyter:

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

Katsotaan mihin ryhmiin käyttäjä kuuluu jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Kaikki on hyvin, jatketaan.

Salli kaikki käyttäjät, jotka ovat ryhmän jäseniä sudo käytä komentoa sudo. Voit tehdä tämän suorittamalla seuraavan skriptin, jossa sed poistaa parametririvin kommentit asetustiedostossa /etc/sudoers:

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

JupyterLabin asennus ja konfigurointi ^

jupyter lab on Python-sovellus, joten meidän on ensin asennettava tämä tulkki. Myös, jupyter lab asennamme Python-pakettienhallinnan avulla pip, eikä järjestelmä, koska se voi olla vanhentunut järjestelmäarkistossa ja siksi meidän on ratkaistava sen riippuvuudet manuaalisesti asentamalla seuraavat paketit - python3 python3-dev gcc libc-dev zeromq-dev:

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

Päivitetään python-moduulit ja paketinhallinta pip nykyiseen versioon:

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

Asettaa jupyter lab paketinhallinnan kautta pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Laajennuksista lähtien jupyter lab ovat kokeellisia eikä niitä toimiteta virallisesti jupyterlab-paketin mukana, joten meidän on asennettava ja määritettävä se manuaalisesti.

Asennamme NodeJS ja sen paketinhallinta - NPM, koska jupyter lab käyttää niitä laajennuksiinsa:

lxc exec jupyterlab -- apk add nodejs npm

Laajennuksiin for jupyter lab jotka asennamme toimivat, ne on asennettava käyttäjähakemistoon, koska sovellus käynnistetään käyttäjältä jupyter. Ongelmana on, että käynnistyskomennossa ei ole parametria, joka voidaan välittää hakemistoon, sovellus hyväksyy vain ympäristömuuttujan ja siksi meidän on määritettävä se. Tätä varten kirjoitamme muuttujan vientikomennon JUPYTERLAB_DIR käyttäjän ympäristössä jupyter, arkistoida .bashrcjoka suoritetaan aina, kun käyttäjä kirjautuu sisään:

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

Seuraava komento asentaa erityisen laajennuksen - laajennushallinta 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"

Nyt kaikki on valmis ensimmäistä käynnistystä varten jupyter lab, mutta voimme silti asentaa muutamia hyödyllisiä laajennuksia:

  • toc — Sisällysluettelo luo artikkelin/muistivihkon otsikoiden luettelon
  • jupyterlab-horizon-theme - Käyttöliittymän teema
  • jupyterlab_neon_theme - Käyttöliittymän teema
  • jupyterlab-ubu-theme - Toinen teema tekijältä Tämä artikkeli :) Mutta tässä tapauksessa asennus GitHub-arkistosta näytetään

Joten suorita seuraavat komennot peräkkäin asentaaksesi nämä laajennukset:

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"

Laajennusten asentamisen jälkeen meidän on koottava ne, koska aiemmin asennuksen aikana määritimme avaimen --no-build ajan säästämiseksi. Nyt nopeuttamme huomattavasti kokoamalla ne yhteen yhdellä kertaa:

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

Suorita nyt seuraavat kaksi komentoa suorittaaksesi ensimmäisen kerran jupyter lab. Se olisi mahdollista käynnistää yhdellä komennolla, mutta tässä tapauksessa mielessäsi vaikeasti muistettava käynnistyskomennon muistaa bash säilössä, ei isännässä, jossa komentoja on jo tarpeeksi tallentaa ne historiaan :)

Kirjaudu säilöön käyttäjänä jupyter:

lxc exec jupyterlab -- su -l jupyter

Seuraavaksi juokse jupyter lab näppäimillä ja parametreilla osoitetulla tavalla:

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

Siirry verkkoselaimesi osoitteeseen http://10.0.5.5:8888 ja avautuvalle sivulle Enter symbolinen pääsy, jonka näet konsolissa. Kopioi ja liitä se sivulle ja napsauta sitten Kirjaudu. Kun olet kirjautunut sisään, siirry vasemmalla olevaan laajennusvalikkoon alla olevan kuvan mukaisesti, jossa sinua pyydetään ottamaan laajennushallintaa aktivoinnin yhteydessä turvallisuusriskejä asentamalla laajennuksia kolmansilta osapuolilta, joille komento JupyterLab-kehitys ei ole vastuussa:

Jupyterin laukaisu LXD-kiertoradalle

Olemme kuitenkin eristäneet koko jupyter lab ja aseta se säilöön, jotta NodeJS:ää vaativat ja käyttävät kolmannen osapuolen laajennukset eivät voi ainakaan varastaa levyllä olevia muita tietoja kuin niitä, jotka avaamme säilössä. Pääset yksityisiin asiakirjoihin isännässä /home säilön prosessit eivät todennäköisesti onnistu, ja jos onnistuvat, sinulla on oltava oikeudet isäntäjärjestelmän tiedostoihin, koska käytämme säilöä etuoikeutettu tila. Näiden tietojen perusteella voit arvioida laajennusten sisällyttämisen riskiä jupyter lab.

Luotu IPython-muistikirjoja (sivua sisään jupyter lab) luodaan nyt käyttäjän kotihakemistoon - /home/jupyter, mutta suunnitelmamme on jakaa tiedot (jako) isännän ja säilön välillä, joten palaa konsoliin ja lopeta jupyter lab suorittamalla pikanäppäin - CTRL+C ja vastaamalla y pyynnöstä. Lopeta sitten käyttäjän interaktiivinen istunto jupyter pikanäppäimen täyttäminen CTRL+D.

Tietojen jakaminen isännän kanssa ^

Jos haluat jakaa tietoja isäntäkoneen kanssa, sinun on luotava säilöön laite, jonka avulla voit tehdä tämän ja suorittaaksesi tämän suorittamalla seuraavan komennon, jossa määritämme seuraavat avaimet:

  • lxc config device add — Komento lisää laitekokoonpanon
  • jupyter — Säilön tunnus, johon kokoonpano lisätään
  • hostfs — Laitteen tunnus. Voit asettaa minkä tahansa nimen.
  • disk — Laitteen tyyppi ilmoitetaan
  • path — Määrittää polun säiliössä, johon LXD liittää tämän laitteen
  • source — Määritä lähde, polku koneen hakemistoon, jonka haluat jakaa säilön kanssa. Määritä polku mieltymystesi mukaan
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Katalogia varten /home/dv/projects/ipython-notebooks käyttöoikeus on asetettava säilön käyttäjälle, jonka UID on tällä hetkellä yhtä suuri kuin SubUID + UID, katso luku Turvallisuus. Säilön oikeudet artikkelissa LXD - Linux-konttijärjestelmien perusominaisuudet.

Aseta käyttöoikeus isännälle, jossa omistaja on säilön käyttäjä jupyter, ja muuttuja $USER määrittää isäntäkäyttäjäsi ryhmäksi:

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

Hei maailma! ^

Jos sinulla on edelleen konsoliistunto avoinna säilössä, jossa on jupyter labja käynnistä se sitten uudelleen uudella avaimella --notebook-dir asettamalla arvon /mnt/hostfs polkuna edellisessä vaiheessa luomamme laitteen säilössä olevien kannettavien tietokoneiden juureen:

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

Siirry sitten sivulle http://10.0.5.5:8888 ja luo ensimmäinen kannettava tietokone napsauttamalla sivulla olevaa painiketta alla olevan kuvan mukaisesti:

Jupyterin laukaisu LXD-kiertoradalle

Kirjoita sitten sivun kenttään Python-koodi, joka näyttää klassisen Hello World!. Kun olet syöttänyt, paina CTRL+ENTER tai yläreunan työkalupalkin "play"-painiketta, jotta JupyterLab tekee tämän:

Jupyterin laukaisu LXD-kiertoradalle

Tässä vaiheessa melkein kaikki on käyttövalmiina, mutta ei ole kiinnostavaa, jos emme asenna ylimääräisiä Python-moduuleja (täysarvoisia sovelluksia), jotka voivat merkittävästi laajentaa Pythonin vakioominaisuuksia jupyter labjoten jatketaan :)

PS Mielenkiintoinen asia on, että vanha toteutus jupyter koodinimen alla Jupyter Notebook ei ole kadonnut ja se on olemassa rinnakkain jupyter lab. Voit vaihtaa vanhaan versioon seuraamalla linkkiä ja lisäämällä pääte osoitteeseen/tree, ja siirtyminen uuteen versioon suoritetaan päätteellä /lab, mutta sitä ei tarvitse määrittää:

Pythonin ominaisuuksien laajentaminen ^

Tässä osiossa asennamme sellaisia ​​tehokkaita Python-kielimoduuleja kuin nuhjuinen, Panda, Matplotlib, IPyWidgetit jonka tulokset integroidaan kannettaviin tietokoneisiin jupyter lab.

Ennen kuin asennat luetellut Python-moduulit paketinhallinnan kautta pip meidän on ensin ratkaistava järjestelmäriippuvuudet Alpine Linuxissa:

  • g++ — Tarvitaan moduulien kääntämiseen, koska osa niistä on toteutettu kielellä C + + ja muodostaa yhteyden Pythoniin ajon aikana binäärimoduuleina
  • freetype-dev - riippuvuus Python-moduulista Matplotlib

Riippuvuuksien asennus:

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

On yksi ongelma: Alpine Linux -jakelun nykyisessä tilassa ei ole mahdollista kääntää NumPyn uutta versiota; näkyviin tulee käännösvirhe, jota en pystynyt ratkaisemaan:

VIRHE: Numpylle ei voitu rakentaa pyöriä, jotka käyttävät PEP 517:ää ja joita ei voida asentaa suoraan

Siksi asennamme tämän moduulin järjestelmäpaketina, joka jakelee jo käännettyä versiota, mutta hieman vanhempia kuin mitä sivustolla tällä hetkellä on saatavilla:

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

Asenna seuraavaksi Python-moduulit paketinhallinnan kautta pip. Ole kärsivällinen, sillä jotkin moduulit käännetään ja saattaa kestää muutaman minuutin. Koneellani kokoaminen kesti ~15 minuuttia:

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

Asennusvälimuistin tyhjennys:

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

Moduulien testaus JupyterLabissa ^

Jos olet juoksemassa jupyter lab, käynnistä se uudelleen, jotta juuri asennetut moduulit aktivoituvat. Voit tehdä tämän napsauttamalla konsoliistunnossa CTRL+C missä se on käynnissä ja mene sisään y lopettaaksesi pyynnön ja aloittaaksesi sitten uudelleen jupyter lab painamalla näppäimistön ylänuolta, jotta komentoa ei anneta uudelleen ja sitten Enter aloittaaksesi sen:

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

Siirry sivulle http://10.0.5.5:8888/lab tai päivitä sivu selaimessasi ja kirjoita sitten seuraava koodi uuteen muistikirjan soluun:

%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

Sinun pitäisi saada alla olevan kuvan mukainen tulos, missä IPyWidgetit luo sivulle käyttöliittymäelementin, joka on vuorovaikutuksessa lähdekoodin kanssa, ja myös Matplotlib näyttää koodin tuloksen kuvan muodossa funktiokaaviona:

Jupyterin laukaisu LXD-kiertoradalle

Useita esimerkkejä IPyWidgetit löydät sen opetusohjelmista täällä

Mitä muuta? ^

Hienoa, jos pysyt ja saavutit artikkelin loppuun. En tarkoituksella lähettänyt artikkelin loppuun valmiita skriptiä, joka asentaisi jupyter lab "yhdellä napsautuksella" kannustaa työntekijöitä :) Mutta voit tehdä sen itse, koska tiedät jo kuinka, kun olet kerännyt komennot yhdeksi Bash-skriptiksi :)

Voit myös:

  • Aseta säilölle verkon nimi IP-osoitteen sijaan kirjoittamalla se yksinkertaisella tavalla /etc/hosts ja kirjoita osoite selaimeen http://jupyter.local:8888
  • Kokeile säilön resurssirajoitusta, lue tätä varten oleva luku LXD-perusominaisuudet tai hanki lisätietoja LXD-kehittäjäsivustolta.
  • Vaihda teemaa:

Jupyterin laukaisu LXD-kiertoradalle

Ja paljon muuta voit tehdä! Siinä kaikki. Toivon sinulle menestystä!

PÄIVITYS: 15.04.2020 18:30 - Korjattu virheet luvussa "Hei, maailma!"
PÄIVITYS: 16.04.2020 10:00 — Korjattu ja lisätty teksti laajennushallinnan aktivointikuvauksessa jupyter lab
PÄIVITYS: 16.04.2020 10:40 — Tekstistä löytyneet korjatut virheet ja hieman parempaan muutettu luku "Perusohjelmiston asennus ja järjestelmän asennus"

Lähde: will.com

Lisää kommentti