Jupyteri lennutamine LXD orbiidile

Kas olete kunagi pidanud Linuxis koodi või süsteemiutiliitidega katsetama, muretsemata selle aluseks oleva süsteemi pärast ja lammutamata koodis, mis peaks töötama juurõigustega, kõik tõrke korral?

Aga mis saab sellest, et oletame, et peate ühes masinas testima või käivitama tervet klastri erinevaid mikroteenuseid? Sada või isegi tuhat?

Hüperviisori hallatavate virtuaalmasinatega saab ja saab selliseid probleeme lahendada, kuid mis hinnaga? Näiteks Alpine Linuxi distributsioonil põhinev konteiner LXD-s tarbib ainult 7.60MB RAM ja kus juurpartitsioon pärast käivitamist hõivab 9.5MB! Kuidas see sulle meeldib, Elon Musk? Soovitan üle vaadata Linuxi konteinersüsteemi LXD põhivõimalused

Pärast seda, kui üldiselt sai selgeks, mis on LXD konteinerid, läheme kaugemale ja mõtleme, mis oleks, kui oleks selline harvesteriplatvorm, kus saaks turvaliselt hosti koodi käivitada, graafikuid genereerida, kasutajaliidese vidinaid oma koodiga dünaamiliselt (interaktiivselt) siduda, täiendada koodi tekstiga blackjack... vorminguga? Mingi interaktiivne ajaveeb? Vau... ma tahan seda! Tahad! 🙂

Vaadake kassi alla, kuhu me konteineris käivitame jupyteri labor - uue põlvkonna kasutajaliides vananenud Jupyter Notebooki asemel ja installime ka Pythoni moodulid nagu tuim, Pandad, matplotlib, IPyWidgetid mis võimaldab teil teha kõike ülalloetletut ja salvestada see kõik spetsiaalsesse faili - IPythoni sülearvutisse.

Jupyteri lennutamine LXD orbiidile

Orbitaalne stardiplaan ^

Jupyteri lennutamine LXD orbiidile

Kirjeldame lühidalt tegevuskava, et hõlbustada ülaltoodud skeemi rakendamist:

  • Paigaldame ja käivitame konteineri, mis põhineb jaotuskomplektil Alpine Linux. Me kasutame seda distributsiooni, kuna see on suunatud minimalismile ja installib sellesse ainult kõige vajalikuma tarkvara, mitte midagi üleliigset.
  • Lisame konteinerisse täiendava virtuaalse ketta ja anname sellele nime - hostfs ja ühendage see juurfailisüsteemi. See ketas võimaldab kasutada hostis olevaid faile konteineris antud kataloogist. Seega on meie andmed konteinerist sõltumatud. Kui konteiner kustutatakse, jäävad andmed hosti. Samuti on see skeem kasulik samade andmete jagamiseks paljude konteinerite vahel ilma konteinerite levitamise standardseid võrgumehhanisme kasutamata.
  • Installime Bash, sudo, vajalikud teegid, lisame ja seadistame süsteemi kasutaja
  • Paigaldame Pythoni, moodulid ja kompileerime nende jaoks binaarsed sõltuvused
  • Installime ja käivitame jupyteri labor, kohandage välimust, installige selle jaoks laiendusi.

Selles artiklis alustame konteineri käivitamisega, me ei kaalu LXD installimist ja konfigureerimist, selle leiate teisest artiklist - LXD - Linuxi konteinersüsteemide põhifunktsioonid.

Põhisüsteemi paigaldamine ja seadistamine ^

Loome konteineri käsuga, milles määrame pildi - alpine3, konteineri identifikaator - jupyterlab ja vajadusel konfiguratsiooniprofiilid:

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

Siin kasutan konfiguratsiooniprofiili hddroot mis määrab juurpartitsiooniga konteineri loomise Hoiubassein asub füüsilisel kõvakettal:

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

See annab mulle võimaluse katsetada HDD ketta konteineritega, säästes SSD ketta ressursse, mis on ka minu süsteemis olemas 🙂 mille jaoks olen loonud eraldi konfiguratsiooniprofiili ssdroot.

Pärast konteineri loomist on see olekus STOPPED, seega peame selle käivitama, käivitades selles süsteemi init:

lxc start jupyterlab

Kuvame klahvi abil konteinerite loendi LXD-s -c mis näitab millist cveergude ekraan:

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 konfiguratsiooniprofiili default mis oli artiklis varem konfigureeritud LXD - Linuxi konteinersüsteemide põhifunktsioonid.

Muudame selle IP-aadressi meeldejäävamaks, luues võrguliidese konteineri tasemel, mitte konfiguratsiooniprofiili tasemel, nagu see on praeguses konfiguratsioonis. Te ei pea seda tegema, võite selle vahele jätta.

Võrguliidese loomine eth0 mille ühendame lülitiga (võrgusild) lxdbr0 milles lubasime NAT-i vastavalt eelmisele artiklile ja konteiner saab nüüd juurdepääsu Internetile ning liidesele määrame ka 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.5

Pärast seadme lisamist tuleb konteiner taaskäivitada:

lxc restart jupyterlab

Konteineri oleku kontrollimine:

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

Põhitarkvara installimine ja süsteemi seadistamine ^

Meie konteineri haldamiseks peate installima järgmise tarkvara:

Pakend
Kirjeldus

sisse lööma
GNU Bourne Again kest

bash-lõpetamine
Bash-shelli programmeeritav lõpetamine

sudo
Andke teatud kasutajatele võimalus mõnda käsku root kasutajana käivitada

vari
Parooli- ja kontohaldustööriistade komplekt, mis toetab varifaile ja PAM-i

tzdata
Ajavööndi ja suveaja andmete allikad

nano
Pico redaktori kloon koos täiustustega

Lisaks saate installida toe süsteemi käsilehtedele, installides järgmised paketid − man man-pages mdocml-apropos less

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

Vaatame, milliseid käske ja klahve kasutasime:

  • lxc — Helistage LXD kliendile
  • exec - LXD-kliendi meetod, mis käivitab konteineris käsu
  • jupyterlab — konteineri ID
  • -- - Spetsiaalne võti, mis määrab, et täiendavaid võtmeid ei tõlgendata klahvidena lxc ja andke ülejäänud nöör nii nagu on konteinerisse
  • apk — Alpine Linuxi distributsioonipakettide haldur
  • add — Paketihalduri meetod, mis installib käsu järel määratud paketid

Järgmisena määrame süsteemis ajavööndi Europe/Moscow:

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

Pärast ajavööndi installimist pakett tzdata pole süsteemis enam vajalik, see võtab ruumi, nii et kustutame selle:

lxc exec jupyterlab -- apk del tzdata

Ajavööndi kontrollimine:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Et mitte kulutada palju aega Bashi seadistamisele konteineris uutele kasutajatele, kopeerime järgmiste sammude käigus hostsüsteemist sinna valmis skeli failid. See võimaldab teil interaktiivselt kaunistada Bashi konteineris. Minu hostsüsteem on Manjaro Linux ja failid kopeeritakse /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors Põhimõtteliselt sobivad need Alpine Linuxile ega põhjusta kriitilisi probleeme, kuid teil võib olla erinev distributsioon ja peate iseseisvalt välja selgitama, kas Bashi käivitamisel konteineris on viga.

Kopeerige skeli failid konteinerisse. Võti --create-dirs loob vajalikud kataloogid, kui neid pole:

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

Olemasoleva juurkasutaja puhul kopeerige äsja konteinerisse kopeeritud skeli failid kodukataloogi:

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 installib kasutajatele süsteemikesta /bin/sh, asendame selle root kasutaja Bashis:

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

Et root kasutaja ei olnud paroolita, peab ta määrama parooli. Järgmine käsk genereerib ja määrab talle uue juhusliku parooli, mida 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: sFiXEvBswuWA

Samuti loome uue süsteemi kasutaja - jupyter mille konfigureerime hiljem jupyteri labor:

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

Loome ja määrame sellele 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: ZIcbzWrF8tki

Järgmisena täidame kaks käsku, millest esimene loob süsteemirühma sudoja teine ​​lisab sellele kasutaja jupyter:

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

Vaatame, millistesse rühmadesse kasutaja kuulub jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Kõik on korras, lähme edasi.

Luba kõik kasutajad, kes on grupi liikmed sudo kasuta käsku sudo. Selleks käivitage järgmine skript, kus sed tühistab konfiguratsioonifaili parameetrirea kommentaarid /etc/sudoers:

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

JupyterLabi installimine ja konfigureerimine ^

jupyteri labor on Pythoni rakendus, seega peame esmalt selle tõlgi installima. Samuti jupyteri labor installime Pythoni paketihalduri abil pip, mitte süsteemi oma, sest see võib olla süsteemihoidlas aegunud ja seetõttu peame selle sõltuvused käsitsi 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-dev

Uuendame pythoni mooduleid ja paketihaldurit pip praegusele versioonile:

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

Komplekt jupyteri labor paketihalduri kaudu pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Kuna laiendused sisse jupyteri labor on eksperimentaalsed ja neid ei tarnita ametlikult koos paketiga jupyterlab, seega peame selle käsitsi installima ja konfigureerima.

Installime NodeJS ja selle paketihalduri - NPM, kuna jupyteri labor kasutab neid oma laienduste jaoks:

lxc exec jupyterlab -- apk add nodejs npm

Laiendustele jaoks jupyteri labor mille installime, töötasid, tuleb need installida kasutajakataloogi, kuna rakendus käivitatakse kasutajalt jupyter. Probleem on selles, et käivitamiskäskluses pole ühtegi parameetrit, mida saaks kataloogi edastada, rakendus aktsepteerib ainult keskkonnamuutujat ja seetõttu peame selle defineerima. Selleks kirjutame muutuja ekspordi käsu JUPYTERLAB_DIR kasutaja keskkonnas jupyter, faili .bashrcmis käivitatakse iga kord, kui kasutaja sisse logib:

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

Järgmine käsk installib spetsiaalse laienduse - laiendushaldurisse jupyteri labor:

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 esimeseks käivitamiseks valmis jupyteri labor, kuid saame siiski installida mõned kasulikud laiendused:

  • toc — Sisukord, genereerib artikli/märkmiku pealkirjade loendi
  • jupyterlab-horizon-theme - kasutajaliidese teema
  • jupyterlab_neon_theme - kasutajaliidese teema
  • jupyterlab-ubu-theme - Veel üks teema autorilt see artikkel :) Aga sel juhul näidatakse GitHubi hoidlast installimist

Seega käivitage nende laiendite installimiseks järjestikku järgmised käsud:

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 laienduste installimist peame need kompileerima, kuna varem määrasime installimise ajal võtme --no-build et aega kokku hoida. Nüüd kiirendame oluliselt, koostades need ühe korraga:

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

Nüüd käivitage kaks järgmist käsku, et seda esimest korda käivitada jupyteri labor. Seda oleks võimalik käivitada ka ühe käsuga, kuid sellisel juhul mäletab raskesti meeldejääv käivitamiskäsk konteineris bash, mitte aga hostis, kus käske on juba piisavalt et need ajalukku jäädvustada :)

Logige konteinerisse kasutajana sisse jupyter:

lxc exec jupyterlab -- su -l jupyter

Järgmiseks jookse jupyteri labor klahvide ja parameetritega, nagu näidatud:

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

Minge oma veebibrauseris aadressile http://10.0.5.5:8888 ja avaneval lehel sisestage sümboolne juurdepääs, mida näete konsoolis. Kopeerige ja kleepige see lehele, seejärel klõpsake Logi sisse. Pärast sisselogimist minge vasakpoolsesse laienduste menüüsse, nagu on näidatud alloleval joonisel, kus teil palutakse laiendushalduri aktiveerimisel võtta turvariske, installides kolmandatelt osapooltelt laiendusi, mille jaoks on käsk JupyterLabi arendus ei vastuta:

Jupyteri lennutamine LXD orbiidile

Siiski isoleerime kogu jupyteri labor ja asetage see konteinerisse, et kolmanda osapoole laiendused, mis nõuavad ja kasutavad NodeJS-i, ei saaks vähemalt varastada ketta andmeid peale nende, mille me konteineris avame. Juurdepääs oma privaatsete dokumentide juurde hostis /home konteineri protsessid tõenäoliselt ei õnnestu ja kui õnnestuvad, peavad teil olema hostisüsteemi failide jaoks õigused, kuna käivitame konteineri privilegeerimata režiim. Selle teabe põhjal saate hinnata laienduste kaasamise ohtu jupyteri labor.

Loodud IPythoni märkmikud (lehekülge sisse jupyteri labor) luuakse nüüd kasutaja kodukataloogis - /home/jupyter, kuid meie plaanid on jagada andmed (jagamine) hosti ja konteineri vahel, nii et naaske konsooli ja lõpetage jupyteri labor käivitades kiirklahvi - CTRL+C ja vastates y nõudmisel. Seejärel lõpetage kasutaja interaktiivne seanss jupyter kiirklahvi täitmine CTRL+D.

Andmete jagamine hostiga ^

Andmete jagamiseks hostiga tuleb konteinerisse luua seade, mis võimaldab seda teha ja selleks käivitada järgmine käsk, kus määrame järgmised võtmed:

  • lxc config device add — Käsk lisab seadme konfiguratsiooni
  • jupyter — konteineri ID, millele konfiguratsioon lisatakse
  • hostfs — Seadme ID. Saate määrata mis tahes nime.
  • disk — Näidatakse seadme tüüp
  • path — Määrab tee konteineris, kuhu LXD selle seadme ühendab
  • source — Määrake allikas, tee selle hosti kataloogi, 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-notebooks

Kataloogi jaoks /home/dv/projects/ipython-notebooks luba tuleb määrata konteineri kasutajale, kelle UID on praegu võrdne SubUID + UID, vaata peatükki Ohutus. Konteineri privileegid artiklis LXD - Linuxi konteinersüsteemide põhifunktsioonid.

Määrake hosti õigus, kus omanik on konteineri kasutaja jupyter, ja muutuja $USER määrab teie hosti kasutaja rühmana:

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

Tere, Maailm! ^

Kui teil on konteineris konsooli seanss endiselt avatud jupyteri labor, seejärel taaskäivitage see uue võtmega --notebook-dir väärtuse määramisega /mnt/hostfs eelmises etapis loodud seadme konteineris olevate sülearvutite juurte teena:

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

Seejärel minge lehele http://10.0.5.5:8888 ja looge oma esimene sülearvuti, klõpsates lehel nuppu, nagu on näidatud alloleval pildil:

Jupyteri lennutamine LXD orbiidile

Seejärel sisestage lehe väljale Pythoni kood, mis kuvab klassika Hello World!. Kui olete sisestamise lõpetanud, vajutage CTRL+ENTER või nuppu "Esita" ülaosas tööriistaribal, et JupyterLab seda teeks:

Jupyteri lennutamine LXD orbiidile

Praegu on peaaegu kõik kasutamiseks valmis, kuid pole huvitav, kui me ei installi täiendavaid Pythoni mooduleid (täisväärtuslikke rakendusi), mis võivad Pythoni standardseid võimalusi oluliselt laiendada. jupyteri laborSeega, lähme edasi :)

PS Huvitav on see, et vana teostus jupyter koodnime all Jupyteri sülearvuti ei ole kuhugi kadunud ja eksisteerib paralleelselt jupyteri labor. Vanale versioonile üleminekuks järgige linki, mis lisab aadressi järelliide/tree, ja üleminek uuele versioonile toimub järelliide abil /lab, kuid seda ei pea täpsustama:

Pythoni võimaluste laiendamine ^

Selles jaotises installime sellised võimsad Pythoni keelemoodulid nagu tuim, Pandad, matplotlib, IPyWidgetid mille tulemused integreeritakse sülearvutitesse jupyteri labor.

Enne loetletud Pythoni moodulite installimist paketihalduri kaudu pip esmalt peame lahendama Alpine Linuxi süsteemisõltuvused:

  • g++ — Vajalik moodulite koostamiseks, kuna osa neist on keeles realiseeritud C + + ja ühendage Pythoniga käitusajal binaarmoodulitena
  • freetype-dev - Pythoni mooduli sõltuvus matplotlib

Sõltuvuste installimine:

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

On üks probleem: Alpine Linuxi distributsiooni praeguses olekus ei ole NumPy uut versiooni võimalik kompileerida; ilmub kompileerimisviga, mida ma ei suutnud lahendada:

VIGA: Numpy jaoks ei saanud ehitada rattaid, mis kasutavad PEP 517 ja mida ei saa otse paigaldada

Seetõttu installime selle mooduli süsteemipaketina, mis levitab juba kompileeritud versiooni, kuid veidi vanemat, kui sellel saidil praegu saadaval on:

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

Järgmisena installige Pythoni moodulid paketihalduri kaudu pip. Varuge kannatust, sest mõned moodulid kompileeritakse ja see võib võtta mõne minuti. Minu masinas võttis koostamine ~15 minutit:

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

Installi vahemälu tühjendamine:

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

Moodulite testimine JupyterLabis ^

Kui jooksed jupyteri labor, taaskäivitage see, et äsja installitud moodulid aktiveeritaks. Selleks klõpsake konsooliseansil CTRL+C kus see töötab ja sisenege y päringu peatamiseks ja seejärel uuesti alustamiseks jupyteri labor vajutades klaviatuuril ülesnoolt, et mitte käsku uuesti sisestada ja seejärel Enter selle käivitamiseks:

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

Minge lehele http://10.0.5.5:8888/lab või värskendage lehte oma brauseris ja sisestage uude märkmiku lahtrisse järgmine kood:

%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

Peaksite saama sellise tulemuse nagu alloleval pildil, kus IPyWidgetid loob lehel kasutajaliidese elemendi, mis interaktiivselt suhtleb lähtekoodiga ja ka matplotlib kuvab koodi tulemuse pildi kujul funktsioonigraafikuna:

Jupyteri lennutamine LXD orbiidile

Palju näiteid IPyWidgetid leiad selle õpetustest siin

Mida veel? ^

Hästi tehtud, kui jäite ja jõudsite artikli lõpuni. Ma ei postitanud meelega artikli lõppu valmis skripti, mis installiks jupyteri labor "ühe klõpsuga", et julgustada töötajaid :) Kuid saate seda ise teha, kuna teate juba, kuidas, kui olete käsud ühte Bashi skripti kogunud :)

Sa saad ka:

  • Määrake konteinerile IP-aadressi asemel võrgunimi, kirjutades selle lihtsa kirjaga /etc/hosts ja tippige aadress brauserisse http://jupyter.local:8888
  • Mängige ümber konteineri ressursipiiranguga, selleks lugege peatükki põhilised LXD võimalused või hankige lisateavet LXD arendaja saidilt.
  • Muuda teemat:

Jupyteri lennutamine LXD orbiidile

Ja palju muud saate teha! See on kõik. Soovin teile edu!

VÄRSKENDUS: 15.04.2020 18:30 - Parandatud vead peatükis "Tere, maailm!"
VÄRSKENDUS: 16.04.2020 10:00 — Parandatud ja lisatud tekst laiendushalduri aktiveerimise kirjelduses jupyteri labor
VÄRSKENDUS: 16.04.2020 10:40 — Tekstist leitud vead parandatud ja veidi paremaks muudetud peatükk “Põhitarkvara installeerimine ja süsteemi seadistamine”

Allikas: www.habr.com

Lisa kommentaar