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.
Navigatsioon
- Orbitaalne stardiplaan
- Põhisüsteemi paigaldamine ja seadistamine
- Põhitarkvara installimine ja süsteemi seadistamine
- JupyterLabi installimine ja konfigureerimine
- Andmete jagamine hostiga
- Tere, Maailm!
- Pythoni võimaluste laiendamine
- Moodulite testimine JupyterLabis
- Mida veel?
Orbitaalne stardiplaan ^
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 kliendileexec
- LXD-kliendi meetod, mis käivitab konteineris käsujupyterlab
— konteineri ID--
- Spetsiaalne võti, mis määrab, et täiendavaid võtmeid ei tõlgendata klahvidenalxc
ja andke ülejäänud nöör nii nagu on konteinerisseapk
— Alpine Linuxi distributsioonipakettide halduradd
— 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 sudo
ja 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 .bashrc
mis 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 loendijupyterlab-horizon-theme
- kasutajaliidese teemajupyterlab_neon_theme
- kasutajaliidese teemajupyterlab-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:
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 konfiguratsioonijupyter
— konteineri ID, millele konfiguratsioon lisataksehostfs
— Seadme ID. Saate määrata mis tahes nime.disk
— Näidatakse seadme tüüppath
— Määrab tee konteineris, kuhu LXD selle seadme ühendabsource
— 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:
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:
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:
- Jupyteri märkmik – http://10.0.5.5:8888/tree
- Jupyteri labor - http://10.0.5.5:8888/lab
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 binaarmoodulitenafreetype-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:
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:
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