Kas oled kunagi pidanud katsetama koodi vĂ”i sĂŒsteemiteenuseid Linuxis nii, et ei peaks muretsema base sĂŒsteemi pĂ€rast ja ei hĂ€vita kĂ”ike, kui kood, mis vajab root-privileege, ebaĂ”nnestub?
Ent kuidas oleks nĂ€iteks testida vĂ”i kĂ€ivitada terve klaster erinevaid mikroteenuseid ĂŒhel masinal? Saja vĂ”i isegi tuhande?
Virtuaalmasinate puhul, mida haldab hĂŒperviisor, on selliseid ĂŒlesandeid kĂŒll vĂ”imalik lahendada, kuid kui suure hinnaga? NĂ€iteks Alpine Linuxi pĂ”hine LXD konteiner tarbib minimaalselt ainult 7.60MB RAM-i, ja kusjuures juurduse jagu pĂ€rast kĂ€ivitamist vĂ”tab 9.5MB! Kuidas sulle selline lĂ€htepunkt sobib, Elon Musk? Soovitan tutvuda LXD pĂ”hifunktsioonidega â konteinerisĂŒsteem Linuxis
Peale seda, kui saime ĂŒldiselt aru, mis on LXD konteinerid, edasi liikudes mĂ”tleme, mis oleks, kui oleks olemas selline platvorm-kombain, kus saaks turvaliselt kĂ€ivitada hosti koodi, genereerida graafikuid, dĂŒnaamiliselt (interaktiivselt) siduda UI vidinaid oma koodiga, tĂ€iendada koodi tekstiga mustade kaartidega... vormindamine? Midagi nagu interaktiivne blogi? Vau⊠Tahan! Tahan! đ
Vaata allapoole, kus kĂ€ivitame konteineris JupyterLab â jĂ€rgmise pĂ”lvkonna kasutajaliides, mis asendab vananenud Jupyter Notebook'i, ning installime sellised Python'i moodulid nagu NumPy, Pandas, Matplotlib, IPyWidgets mis vĂ”imaldavad teha kĂ”ik eelnevalt loetletud ja salvestada see kĂ”ik spetsiaalsesse faili â IPython'i mĂ€rkmikusse.

Navigeerimine
- Orbitaalne tÔusupÀev
- PĂ”hisĂŒsteemi installimine ja seadistamine
- PĂ”hiprogrammi installimine ja sĂŒsteemi seadistamine
- JupyterLab'i installimine ja seadistamine
- Jagame andmeid hostiga
- Tere, maailm!
- Kohandame Python'i vÔimalusi
- Testime mooduleid JupyterLab'is
- Mis veel?
Orbitaalne tÔusupÀev ^

Koostame lĂŒhikese tegevuskava, et oleks lihtsam ellu viia ĂŒlaltoodud skeem:
- Installime ja kĂ€ivitame konteineri jaotuse pĂ”hjal Alpine Linux. Me kasutame seda distributsiooni, kuna see on suunatud minimaalismile ja installime sinna vaid kĂ”ige vajalikuma tarkvara, mitte midagi ĂŒleliigset.
- Lisame konteinerisse tĂ€iendava virtuaalse ketta, millele anname nime â
hostfsja mountime selle juurfailisĂŒsteemi. See ketas vĂ”imaldab kasutada hostis olevaid faile mÀÀratud kataloogist konteineris. Sellisel viisil jÀÀvad andmed meie jaoks konteinerist sĂ”ltumatuks. Kui konteiner kustutatakse, jÀÀvad andmed hostisse. Samuti on see skeem kasulik, et jagada andmeid mitme konteineri vahel, ilma et kasutada konteineri distributsiooni sisemisi vĂ”rgu mehhanisme. - Installime Bash'i, sudo, vajalikud raamatukogud, lisame ja seadistame sĂŒsteemi kasutajat
- Installime Python'i, moodulid ja kompileerime nende jaoks binaarsed sÔltuvused.
- Installime ja kÀivitusime JupyterLab, seadistame vÀlimuse, installime laiendused.
Selles artiklis alustame konteineri kĂ€ivitamisest, me ei kĂ€sitle LXD installimist ja seadistamist, kogu selle teavet leiate teisest artiklist â AlusvĂ”imekus LXD â konteinerite sĂŒsteem Linuxis..
PĂ”hisĂŒsteemi installimine ja seadistamine ^
Loome konteineri kĂ€su abil, kus mÀÀrame pildi â alpine3, konteineri identifikaator â jupyterlab ja vajadusel konfigureerimisprofiilid:
lxc init alpine3 jupyterlab --profile=default --profile=hddrootSiin kasutan ma konfigureerimisprofiili hddroot mille eesmĂ€rk on luua konteiner root-partitsiooniga Storage Pool mis asub fĂŒĂŒsilisel HDD-diskil:
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:
- noneSee vĂ”imaldab mul eksperimenteerida konteineritega HDD-diskil, sÀÀstes SSD-diskilt ressursse, mis samuti minu sĂŒsteemis olemas đ, millele olen loonud eraldi konfigureerimisprofiili. ssdroot.
PĂ€rast konteineri loomist on see seisundis PEATUD, seega peame selle kĂ€ivitama, kĂ€ivitades seal init-sĂŒsteemi:
lxc start jupyterlabVaatame LXD-s konteinerite loendit, kasutades vÔtit -c mis nÀitab, millised cveergudest kuvatakse ekraanil:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+Konteineri loomisel valiti IP-aadress juhuslikult, kuna kasutasime varem konfigureeritud profiili default mis oli eelnevalt seadistatud artiklis AlusvĂ”imekus LXD â konteinerite sĂŒsteem Linuxis..
Muudame selle IP-aadressi meeldejÀÀvamaks, luues vÔrguhoova konteineri tasemel, mitte konfiguratsiooniprofiili tasemel, nagu see praeguses konfiguratsioonis on. Seda ei ole kohustuslik teha, vÔite selle vahele jÀtta.
Loome vĂ”rguhoova eth0 mille lingime lĂŒlitiga (vĂ”rgusillaga) lxdbr0 kus oleme eelmine kord NAT-i sisse lĂŒlitanud ja konteineril on nĂŒĂŒd juurdepÀÀs internetile, samuti mÀÀrame liidesele staatilise IP-aadressi â 10.0.5.5:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5PÀrast seadme lisamist tuleb konteiner taaskÀivitada:
lxc restart jupyterlabKontrollime konteineri staatust:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+PĂ”hiprogrammi installimine ja sĂŒsteemi seadistamine ^
Meie konteineri haldamiseks on vajalik paigaldada jÀrgmine tarkvara:
Paketid
Kirjeldus
bash
GNU Bourne Again shell
bash-completion
Programmable completion for the bash shell
sudo
Anna teatavatele kasutajatele vÔimalus kÀivitada mÔned kÀsklused administraatori Ôigustes
shadow
Parooli ja konto haldamise tööriistade komplekt, mis toetab shadow-faile ja PAM-i
tzdata
Ajakohastatud andmed ajavööndite ja suveaja kohta
nano
Pico redaktori kloon, millel on tÀiendused
Lisaks vĂ”ite paigaldada man-lehekĂŒlgede toe, installides jĂ€rgmised paketid â man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nanoAnalĂŒĂŒsime kĂ€sklusi ja lĂŒliteid, mida kasutasime:
lxcâ LXD kliendi kutseexecâ LXD kliendi meetod, mis kĂ€ivitab kĂ€su konteinerisjupyterlabâ Konteineri identifikaator--â Eriline lĂŒliti, mis nĂ€itab, et edasisi lĂŒliteid ei tohi tĂ”lgendadalxcja edastada kogu ĂŒlejÀÀnud rea sellisena konteinerisseapkâ Alpine Linuxi jaotise pakihalduraddâ Pakihalduri meetod, mis installib kĂ€su jĂ€rel nimetatud paketid
Edasi, seadistame sĂŒsteemis ajavööndi Europe/Moscow:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtimePĂ€rast ajavööndi seadistamist on pakett tzdata sĂŒsteemis enam vajalik, see vĂ”tab ruumi, seega eemaldame selle:
lxc exec jupyterlab -- apk del tzdataKontrollime ajavööndi:
lxc exec jupyterlab -- date
KolmapĂ€ev Apr 15 10:49:56 MSK 2020Ettevaatlikult aega sÀÀstmata Bash-i seadistamisel konteineris uutele kasutajatele kopeerime jĂ€rgmiste toimingutega valmiskujul skel-failid kohalikust sĂŒsteemist. See vĂ”imaldab Bash-i ilu konteineris interaktiivses reĆŸiimis. Minu kohalik sĂŒsteem on Manjaro Linux ja kopeeritud failid /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors sobivad pĂ”himĂ”tteliselt ka Alpine Linuxile ning ei tekita kriitilisi probleeme, kuid teil vĂ”ib olla mĂ”ni muu distributsioon ja peate vigade korral ise toime tulema, kui Bash konteineris ei kĂ€ivitu.
Kopeerime skel-failid konteinerisse. VÔti --create-dirs loob vajalikud kataloogid, kui neid 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_colorsOlemasolevale root-kasutajale kopeerime kodukatalooge just Àsja konteinerisse kopeeritud skel-failid:
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_colorsAlpine Linuxis installitakse kasutajatele sĂŒsteemi kest, /bin/shme vahetame selle root kasutajal Bash-i vastu:
lxc exec jupyterlab -- usermod --shell=/bin/bash rootEt root kasutaja ei olnud paroolita, tal tuleb seada parool. JÀrgmine kÀsk genereerib ja seadistab talle uue juhusliku parooli, mille nÀete pÀrast selle tÀitmist konsooliekraanil:
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: sFiXEvBswuWALoome ka uue sĂŒsteemse kasutaja â jupyter kellele seadistame hiljem JupyterLab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyterGenereerime ja seadistame talle parooli:
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: ZIcbzWrF8tkiEdasi tĂ€idame kaks kĂ€sku, esimene loob sĂŒsteemi grupi sudo, teine aga lisab sellesse kasutaja jupyter:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyterVaata, millistesse gruppidesse kasutaja kuulub jupyter:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudoKĂ”ik â selge, liigume edasi.
Lubame kÔigil kasutajatel, kes kuuluvad gruppi sudo kasutada kÀsku sudo. Selleks tÀitke jÀrgmine skript, kus sed kommenteerib konfigureerimisfaili parameetri rea vÀlja /etc/sudoers:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"JupyterLab'i installimine ja seadistamine ^
JupyterLab â see on Python rakendus, seega peame esmalt selle tĂ”lgendi installima. Samuti, JupyterLab me installime pythoniga seotud paketihalduri abil, pip, mitte sĂŒsteemihalduri kaudu, kuna sĂŒsteemide registris vĂ”ib see olla aegunud, ja seetĂ”ttu peame kĂ€sitsi sĂ”ltuvused lahendama, installides jĂ€rgmised paketid â python3 python3-dev gcc libc-dev zeromq-dev:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-devUuendame pythonimoodulid ja paketihalduri pip aktuaalsele versioonile:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheelPaigaldame JupyterLab paketihalduri kaudu pip:
lxc exec jupyterlab -- python3 -m pip install jupyterlabKuna laiendused JupyterLab on eksperimentaalsed ja ametlikult ei tule need koos jupyterlabi paketiga, seega peame selle installima ja seadistama kÀsitsi.
Installime NodeJS ja selle paketihalduri â NPM, kuna JupyterLab kasutab neid oma laiendustes:
lxc exec jupyterlab -- apk add nodejs npmKuna laiendused, mille me installime, peavad töötama, tuleb need installida kasutajakausta, kuna rakendus kĂ€ivitatakse kasutaja alt. JupyterLab mida me installime, tuleb paigaldada kasutaja katalooge, kuna rakendus kĂ€ivitub kasutaja alt jupyter. Probleem on see, et kĂ€ivituskĂ€sk ei sisalda parameetrit katalooge edastamiseks, rakendus tunnustab ainult keskkonnamuutujat, seega peame selle mÀÀratlema. Selleks kirjutame muutujate eksportimise kĂ€su. JUPYTERLAB_DIR kasutaja keskkonnas jupyter, faili .bashrc, mida tĂ€idetakse iga kord, kui kasutaja sĂŒsteemi siseneb:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"JĂ€rgmiseks kĂ€skime paigaldada spetsiaalse laienduse â laienduste halduri JupyterLab:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager"NĂŒĂŒd on kĂ”ik valmis esimese kĂ€ivituse jaoks JupyterLab, kuid me saame paigaldada veel mĂ”ned kasulikud laiendused:
tocâ Sisukord, genereerib nimekirja pealkirjadest artiklis/notebookisjupyterlab-horizon-themeâ UI kujundusteemajupyterlab_neon_themeâ UI kujundusteemajupyterlab-ubu-themeâ Veel ĂŒks kujundusteema autori selle artikli đ Kuid sel juhul kuvatakse paigaldus GitHubi repost.
Seega kÀivitage jÀrjestikku jÀrgmised kÀsud, et need laiendused paigaldada:
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"PĂ€rast laiendite installimist peame need kompileerima, nagu enne, installimise kĂ€igus kasutasime vĂ”tme --no-build aja sÀÀstmiseks. NĂŒĂŒd kiirendame oluliselt, kompileerides need koos ĂŒhe korraga:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"NĂŒĂŒd kĂ€ivitage jĂ€rgmised kaks kĂ€sku esmakordseks kĂ€ivitamiseks JupyterLab. Ăhe kĂ€suga oleks vĂ”imalik see kĂ€ivitada, kuid sel juhul jÀÀb kĂ€ivituskĂ€sk, mida vaimus hoida, bashâi konteinerisse talletuma, mitte hostisse, kus on juba piisavalt kĂ€ske ajaloosse kirjutamiseks đ
Logige konteineris sisse kasutajana jupyter:
lxc exec jupyterlab -- su -l jupyterSeejÀrel kÀivitage JupyterLab vÔtmete ja parameetritega nagu nÀidatud:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browserAvage veebibrauseris aadressil http://10.0.5.5:8888 ja ja avatud lehe, sisestage token juurdepÀÀs, mille nĂ€ete konsoolis. Kopeerige see ja kleepige lehele, seejĂ€rel vajutage Logi sisse. PĂ€rast sisselogimist minge vasakul laiendite menĂŒĂŒsse, nagu on nĂ€idatud alloleval pildil, kus teile pakutakse laiendihalduri aktiveerimisel vĂ”tta endale turvariskid, installides kolmandate osade laiendeid, mille eest meeskond JupyterLabi arendus ei vastuta:

Kuid me isoleerime selle tĂ€ielikult JupyterLab ja paneme selle konteinerisse, et kolmandad osalised laiendused, mis nĂ”uavad ja kasutavad NodeJS-d, ei saaks vĂ€hemalt andmeid kettale varastada, vĂ€lja arvatud need, mida avame konteineris. LigipÀÀs teie privaatsetele dokumentidele hostis /home konteineri protsessidest ei Ă”nnestu tĂ”enĂ€oliselt, ja kui ka Ă”nnestub, siis selleks on vaja failides privileege hostisĂŒsteemis, kuna kĂ€itame konteinerit ilma privileegideta. Selle teabe pĂ”hjal saate hinnata riskide taset laiendite lubamisel JupyterLab.
Loodud IPythoni mĂ€rkmikud (lehed JupyterLab) luuakse nĂŒĂŒd kasutaja kodukaustas â /home/jupyter, kuid meie plaanid on jagada andmeid (jagada) hosti ja konteineri vahel, seega minge tagasi konsooli ja peatage JupyterLab kasutades hotkey-d â CTRL+C ja vastake y pĂ€ringule. SeejĂ€rel katkestage kasutaja interaktiivne seanss jupyter kasutades hotkey-d CTRL+D.
Jagame andmeid hostiga ^
Et jagada andmeid hostiga, tuleb konteineris luua seade, mis seda vÔimaldab, ja selleks kÀivitage jÀrgmine kÀsk, kus nÀitame jÀrgmisi vÔtmeid:
lxc config device addâ KĂ€sk lisab seadme konfiguratsioonijupyterâ Konteineri identifikaator, kuhu konfiguratsioon lisataksehostfsâ Seadmestiku identifikaator. Saate mÀÀrata ĂŒkskĂ”ik millise nime.diskâ NĂ€itab seadme tĂŒĂŒpifailiteeâ NĂ€itab teed konteineris, kuhu LXD selle seadme mountibsourceâ NĂ€itab allikat, teed katalooge hostis, mida soovite konteineriga jagada. MÀÀrake tee vastavalt oma eelistustele
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooksKatalooge /home/dv/projects/ipython-notebooks peab olema mÀÀratud konteineri kasutajale, kellel on praegu UID, mis on vĂ”rdne SubUID + UID, vaadake peatĂŒkki Turvalisus. Konteinerite Ă”igused artiklis AlusvĂ”imekus LXD â konteinerite sĂŒsteem Linuxis..
Seame kohalike Ôigusi hostis, kus konteineri kasutaja on omanik jupyter, ja muutuja $USER mÀÀrab teie hosti kasutaja grupina:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooksTere, maailm! ^
Kui teil on konteineris juba avatud konsoolisessioon JupyterLab, siis taaskÀivitage see uue vÔtmega --notebook-dir andmisega /mnt/hostfs kui teed, mis viitab konteineris loodud seadme juurikale:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfsSeejĂ€rel minge lehele http://10.0.5.5:8888 ja looge oma esimene sĂŒlearvuti, klĂ”psates alloleval pildil nĂ€idatud nuppu:

SeejĂ€rel sisestage lehe vĂ€ljal Pythonis kood, mis vĂ€ljendab klassikalist Hello World!. Sisestamise lĂ”pus vajutage CTRL+ENTER vĂ”i nuppu «play» ĂŒlemise tööriistariba peal, et JupyterLab seda kĂ€ivitaks:

Sellega on peaaegu kĂ”ik kasutamiseks valmis, kuid see ei oleks huvitav, kui me ei installi tĂ€iendavaid Python-mooduleid (tĂ€israkendusi), mis vĂ”imaldavad oluliselt laiendada Python'i standardvĂ”imeid JupyterLab, seega liikume edasi đ
P.S. Huvi pakub, et vana teostus Jupyter koodinimega Jupyter Notebook ei ole kuhugi kadunud ja see eksisteerib paralleelselt JupyterLab. Vana versiooni minemiseks minge lingile, lisades aadressile suffiksi/tree, uus versioon on saadaval suffiksiga /lab, kuid seda pole tingimata vaja mÀrkida:
- Jupyter Notebook â http://10.0.5.5:8888/tree
- Jupyter Lab â http://10.0.5.5:8888/lab
Kohandame Python'i vÔimalusi ^
Selles osas installime vÔimsad Python'i moodulid nagu NumPy, Pandas, Matplotlib, IPyWidgets mille töö tulemused integreeritakse raamatutesse JupyterLab.
Enne kui installime loetletud Python'i moodulid paketihalduri kaudu pip peame esmalt lahendama sĂŒsteemi sĂ”ltuvused Alpine Linuxis:
g++â Vajalik moodulite kompileerimiseks, kuna mĂ”ned neist on kirjutatud keeles C++ ja liidetakse Python'iga tööajal kui binaarsed moodulidfreetype-devâ sĂ”ltuvus Python'i moodulile Matplotlib
Installeerime sÔltuvused:
lxc exec jupyterlab -- apk add g++ freetype-devOn ĂŒks probleem, praeguses Alpine Linuxi jaotuses ei Ă”nnestu meil kompileerida uut versiooni NumPy'st, kompileerimise viga, mille lahendamine mul ei Ă”nnestunud:
ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly
Seega installime selle mooduli kui sĂŒsteemipaketi, mis jagab juba kompileeritud versiooni, kuid see on veidi vanem kui praegu veebisaidil saadaval:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-devSeejÀrel installime Pythoni moodulid paketihalduri kaudu pip. Olge kannatlik, kuna mÔned moodulid kompileeritakse ja see vÔtab paar minutit. Minu masinas kestis kompileerimine umbes 15 minutit:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlibKustutame installatsiooni vahemÀlud:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*Testime mooduleid JupyterLab'is ^
Kui see on kĂ€ivitatud JupyterLab, taaskĂ€ivitage see, et uued installitud moodulid aktiveeruksid. Selleks vajutage konsoolis CTRL+C seal, kus see on kĂ€ivitatud, ja sisestage y peatumise korral. JupyterLab SeejĂ€rel kĂ€ivitage uuesti, vajutades klaviatuuril noole ĂŒles, et command't uuesti sisestada, ja seejĂ€rel Enter kĂ€ivitamiseks:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfsMinge lehele http://10.0.5.5:8888/lab vÔi vÀrskendage brauseris lehte ning seejÀrel sisestage jÀrgmine kood uude notebuki rakkusse:
%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_plotTe peate saama tulemuse nagu alloleval pildil, kus IPyWidgets genereerib lehelt UI-elementi, mis suhtleb interaktiivselt lÀhtekoodiga, samuti Matplotlib kuvab koodi tulemuse pildi kujul nagu funktsiooni graafik:

Paljusid nÀiteid IPyWidgets vÔite leida Ôpetustes siit
Mis veel? ^
Te olete tublid, kui jĂ”udsite artikli lĂ”puni. Ma ei soovinud artikli lĂ”pus valmis skripti jagada, mis installiks JupyterLab "ĂŒhe klikiga", et julgustada töötajaid đ Kuid te saate seda teha ise, kuna te juba teate, kuidas, kogudes kĂ€sud ĂŒhte Bash skripti đ
Samuti vÔite:
- Seada konteineri vÔrgunime IP-aadressi asemel, kirjutades selle lihtsasse
/etc/hostsja brauseris aadressi tippida http://jupyter.local:8888 - MĂ€ngida konteineri ressursside piirangutega, selleks lugege peatĂŒkki LXD pĂ”hivĂ”imalustest vĂ”i hankige tĂ€iendavat teavet LXD arendaja veebisaidilt.
- Vahetada teema:

Ja veel palju muud saate teha! Sellega on kÔik. Soovin teile edu!
UUENDUS: 15.04.2020 18:30 â Parandasin vead peatĂŒkis "Tere, maailm!"
UUENDUS: 16.04.2020 10:00 â Kohandasin ja lisasin teksti laiendite halduri aktiveerimise kirjelduse JupyterLab
UUENDUS: 16.04.2020 10:40 â Parandasin tekstis leitud vigu ja muutsin pisut paremaks peatĂŒki "PĂ”hirtarkvara installimine ja sĂŒsteemi seadistamine".
Allikas: habr.com
