Iúpatar á seoladh isteach i bhfithis LXD

An raibh ort riamh triail a bhaint as cód nó fóntais chórais i Linux ionas nach mbeadh imní ort faoin mbunchóras agus gan gach rud a stróiceadh i gcás earráide sa chód ba chóir a bheith ag rith le pribhléidí fréamhacha?

Ach cad mar gheall ar an bhfíric go ligean linn a rá go gcaithfidh tú braisle iomlán de mhicrisheirbhísí éagsúla a thástáil nó a reáchtáil ar aon mheaisín amháin? Céad nó fiú míle?

Le meaisíní fíorúla arna mbainistiú ag hypervisor, is féidir agus déanfar fadhbanna den sórt sin a réiteach, ach cén costas? Mar shampla, ídíonn coimeádán i LXD bunaithe ar dháileadh Alpach Linux amháin 7.60MB RAM, agus i gcás ina n-áitíonn an deighilt fhréamh tar éis tosaithe 9.5MB! Conas is maith leat é seo, Elon Musk? Molaim seiceáil amach cumais bhunúsacha LXD - córas coimeádán i Linux

Tar éis dó a bheith soiléir go ginearálta cad iad na coimeádáin LXD, déanaimis dul níos faide agus smaoineamh, cad é dá mbeadh ardán bainte den sórt sin ann inar féidir leat cód a rith go sábháilte don óstach, graif a ghiniúint, UI-giuirléidí a nascadh go dinimiciúil (go hidirghníomhach) le do chód, an cód a fhorlíonadh le téacs le blackjack... formáidiú? Blag idirghníomhach éigin? Wow... ba mhaith liom é! Ba mhaith! 🙂

Féach faoin cat áit a sheolfaimid i gcoimeádán saotharlann Iúpatar - an chéad ghlúin eile de chomhéadan úsáideora in ionad an Leabhar Nótaí Jupyter as dáta, agus cuirfimid modúil Python ar nós UimhPy, Pandas, matplotlib, IPyWidgets a ligfidh duit gach rud atá liostaithe thuas a dhéanamh agus é a shábháil ar fad i gcomhad speisialta - ríomhaire glúine IPython.

Iúpatar á seoladh isteach i bhfithis LXD

Plean éirí de thalamh fithiseach ^

Iúpatar á seoladh isteach i bhfithis LXD

Déanaimis breac-chuntas ar phlean gníomhaíochta gairid chun é a dhéanamh níos fusa dúinn an scéim thuas a chur i bhfeidhm:

  • Déanaimis coimeádán a shuiteáil agus a sheoladh bunaithe ar an trealamh dáileacháin Alpine Linux. Bainfimid úsáid as an dáileadh seo toisc go bhfuil sé dírithe ar minimalism agus ní shuiteálfaimid ach na bogearraí is gá ann, gan aon rud iomarcach.
  • Cuirimis diosca fíorúil breise sa choimeádán agus tabhair ainm dó - hostfs agus é a shuiteáil ar an gcóras fréimhe comhaid. Fágfaidh an diosca seo gur féidir comhaid a úsáid ar an óstach ó eolaire ar leith taobh istigh den choimeádán. Mar sin, beidh ár sonraí neamhspleách ar an gcoimeádán. Má scriostar an coimeádán, fanfaidh na sonraí ar an ósta. Chomh maith leis sin, tá an scéim seo úsáideach chun na sonraí céanna a roinnt idir go leor coimeádán gan úsáid a bhaint as meicníochtaí líonra caighdeánacha an dáileadh coimeádáin.
  • Déanaimis Bash, sudo, na leabharlanna riachtanacha a shuiteáil, úsáideoir córais a chur leis agus a chumrú
  • Déanaimis Python, modúil a shuiteáil agus spleáchais dhénártha a thiomsú dóibh
  • A ligean ar a shuiteáil agus a sheoladh saotharlann Iúpatar, an chuma a shaincheapadh, síntí a shuiteáil dó.

San Airteagal seo cuirfimid tús leis an gcoimeádán a sheoladh, ní mheasfaimid LXD a shuiteáil agus a chumrú, is féidir leat seo go léir a fháil in alt eile - Bunghnéithe LXD - córais coimeádán Linux.

Suiteáil agus cumraíocht an chórais bhunúsach ^

Cruthaímid coimeádán leis an ordú ina sonraímid an íomhá - alpine3, aitheantóir don choimeádán - jupyterlab agus, más gá, próifílí cumraíochta:

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

Anseo táim ag baint úsáide as próifíl chumraíochta hddroot a shonraíonn coimeádán a chruthú le deighilt fréimhe i Snámha Stórála suite ar diosca HDD fisiciúil:

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

Tugann sé seo an deis dom triail a bhaint as coimeádáin ar an diosca HDD, rud a shábháil acmhainní an diosca SSD, atá ar fáil freisin i mo chóras 🙂 a bhfuil próifíl cumraíochta ar leith cruthaithe agam dó ssdroot.

Tar éis an coimeádán a chruthú, tá sé sa stát STOPPED, mar sin caithfimid é a thosú tríd an gcóras init ann a rith:

lxc start jupyterlab

Taispeánaimis liosta coimeádán i LXD ag baint úsáide as an eochair -c a thugann le fios cé acu ctaispeánann na colúin:

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

Agus an coimeádán á chruthú, roghnaíodh an seoladh IP go randamach, ó d'úsáideamar próifíl chumraíochta default a bhí cumraithe roimhe seo san alt Bunghnéithe LXD - córais coimeádán Linux.

Déanfaimid an seoladh IP seo a athrú go ceann níos mó i gcuimhne trí chomhéadan líonra a chruthú ag leibhéal an choimeádáin, agus ní ag leibhéal próifíl na cumraíochta mar atá sé anois sa chumraíocht reatha. Ní gá duit é seo a dhéanamh, is féidir leat é a scipeáil.

Comhéadan líonra a chruthú eth0 a nascaimid leis an lasc (droichead líonra) lxdbr0 inar chumasaigh muid NAT de réir an ailt roimhe seo agus beidh rochtain ag an gcoimeádán ar an Idirlíon anois, agus sannaimid seoladh IP statach don chomhéadan - 10.0.5.5:

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

Tar éis gléas a chur leis, ní mór an coimeádán a atosú:

lxc restart jupyterlab

Stádas an choimeádáin a sheiceáil:

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

Bogearraí bunúsacha a shuiteáil agus an córas a shocrú ^

Chun ár gcoimeádán a riar, ní mór duit na bogearraí seo a leanas a shuiteáil:

Pacáiste
Tuairisc

Eabhrac
An bhlaosc GNU Bourne Again

bash-chríochnú
Críochnú ríomhchláraithe don bhlaosc bash

sudo
Tabhair an cumas d'úsáideoirí áirithe roinnt orduithe a rith mar fhréamh

scáth
Sraith uirlisí bainistíochta pasfhocal agus cuntas le tacaíocht do scáthchomhaid agus PAM

sonraí
Foinsí le haghaidh crios ama agus sonraí ama a shábháil solas an lae

nano
Clón eagarthóir Pico le feabhsuithe

Ina theannta sin, is féidir leat tacaíocht a shuiteáil i bhfear-leathanaigh an chórais trí na pacáistí seo a leanas a shuiteáil - man man-pages mdocml-apropos less

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

Breathnaímid ar na horduithe agus na heochracha a d'úsáideamar:

  • lxc - Cuir glaoch ar chliant LXD
  • exec - Modh cliant LXD a ritheann ordú sa choimeádán
  • jupyterlab — Aitheantas Coimeádán
  • -- - Eochair speisialta a shonraíonn gan a thuilleadh eochracha a léiriú mar eochracha do lxc agus pas a fháil ar an gcuid eile den sreang mar atá chuig an gcoimeádán
  • apk — Bainisteoir pacáiste dáilte Alpach Linux
  • add — Modh bainisteora pacáiste a shuiteálann pacáistí a shonraítear tar éis an ordaithe

Ar aghaidh, socróimid crios ama sa chóras Europe/Moscow:

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

Tar éis an crios ama a shuiteáil, an pacáiste tzdata nach bhfuil gá leis sa chóras a thuilleadh, glacfaidh sé spás, mar sin scriosaimis é:

lxc exec jupyterlab -- apk del tzdata

Ag seiceáil an crios ama:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

D'fhonn gan go leor ama a chaitheamh ag bunú Bash d'úsáideoirí nua sa choimeádán, sna céimeanna seo a leanas déanfaimid comhaid skel réamhdhéanta a chóipeáil ón gcóras óstach chuige. Tabharfaidh sé seo deis duit Bash a mhaisiú i gcoimeádán go hidirghníomhach. Is é mo chóras óstach Manjaro Linux agus na comhaid á chóipeáil /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors i bprionsabal go bhfuil siad oiriúnach le haghaidh Alpach Linux agus ní chuireann siad ina chúis le fadhbanna criticiúla, ach d'fhéadfadh go mbeadh dáileadh difriúil agat agus ní mór duit a dhéanamh amach go neamhspleách an bhfuil earráid ann nuair a bhíonn Bash sa choimeádán á rith.

Cóipeáil na comhaid skel chuig an gcoimeádán. eochair --create-dirs cruthóidh sé na heolairí riachtanacha mura bhfuil siad ann:

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

Maidir le húsáideoir fréimhe atá ann cheana féin, cóipeáil na comhaid skel atá díreach cóipeáilte isteach sa choimeádán chuig an eolaire baile:

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

Insealbhaíonn Alpach Linux blaosc córais d’úsáideoirí /bin/sh, cuirfimid ina ionad root úsáideoir i Bash:

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

Sin root ní raibh an t-úsáideoir gan phasfhocal, ní mór dó focal faire a shocrú. Ginfidh agus socróidh an t-ordú seo a leanas pasfhocal randamach nua dó, a fheicfidh tú ar scáileán an chonsóil tar éis é a fhorghníomhú:

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

Chomh maith leis sin, cruthaimis úsáideoir córais nua - jupyter a dhéanfaimid a chumrú níos déanaí saotharlann Iúpatar:

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

Déanaimis pasfhocal a ghiniúint agus a shocrú dó:

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

Ansin, déanfaimid dhá ordú a fhorghníomhú, cruthóidh an chéad cheann grúpa córais sudo, agus cuirfidh an dara ceann úsáideoir leis jupyter:

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

Feicfimid cad iad na grúpaí lena mbaineann an t-úsáideoir jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Tá gach rud ceart go leor, a ligean ar bogadh ar aghaidh.

Ceadaigh do gach úsáideoir atá ina mbaill den ghrúpa sudo ordú a úsáid sudo. Chun seo a dhéanamh, reáchtáil an script seo a leanas, i gcás ina sed uncomments an líne paraiméadar sa chomhad cumraíochta /etc/sudoers:

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

JupyterLab a shuiteáil agus a chumrú ^

saotharlann Iúpatar Is feidhmchlár Python é, mar sin ní mór dúinn an t-ateangaire seo a shuiteáil ar dtús. Freisin, saotharlann Iúpatar déanfaimid suiteáil ag baint úsáide as bainisteoir pacáiste Python pip, agus ní an córas amháin, toisc go bhféadfadh sé a bheith as dáta i stór an chórais agus mar sin, ní mór dúinn na spleáchais dó a réiteach de láimh trí na pacáistí seo a leanas a shuiteáil - python3 python3-dev gcc libc-dev zeromq-dev:

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

Déanaimis modúil python agus bainisteoir pacáiste a nuashonrú pip chuig an leagan reatha:

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

Socraigh saotharlann Iúpatar via bainisteoir pacáiste pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Ós rud é na síntí i saotharlann Iúpatar trialacha agus nach seoltar iad go hoifigiúil leis an bpacáiste jupyterlab, mar sin ní mór dúinn é a shuiteáil agus a chumrú de láimh.

Déanaimis NodeJS agus an bainisteoir pacáiste a shuiteáil dó - NPM, ó shin saotharlann Iúpatar úsáideann iad dá síntí:

lxc exec jupyterlab -- apk add nodejs npm

Le síntí le haghaidh saotharlann Iúpatar a shuiteálfaimid d'oibrigh, ní mór iad a shuiteáil sa eolaire úsáideora ós rud é go seolfar an t-iarratas ón úsáideoir jupyter. Is í an fhadhb atá ann ná nach bhfuil aon pharaiméadar san ordú seolta is féidir a chur ar aghaidh chuig eolaire; ní ghlacann an feidhmchlár ach le hathróg timpeallachta agus mar sin ní mór dúinn é a shainiú. Chun seo a dhéanamh, scríobhfaimid an t-ordú easpórtála athraitheach JUPYTERLAB_DIR i dtimpeallacht an úsáideora jupyter, a chomhdú .bashrca dhéantar gach uair a logálann an t-úsáideoir isteach:

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

Suiteáilfidh an chéad ordú eile síneadh speisialta - bainisteoir síneadh i saotharlann Iúpatar:

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

Anois tá gach rud réidh don chéad seoladh saotharlann Iúpatar, ach is féidir linn cúpla síneadh úsáideach a shuiteáil fós:

  • toc — Cruthaíonn Clár na nÁbhar, liosta ceannteideal in alt/leabhar nótaí
  • jupyterlab-horizon-theme — Téama Chomhéadain
  • jupyterlab_neon_theme — Téama Chomhéadain
  • jupyterlab-ubu-theme - Ceann eile téama ón údar an t-alt seo :) Ach sa chás seo, taispeánfar an suiteáil ó stór GitHub

Mar sin, reáchtáil na horduithe seo a leanas go seicheamhach chun na síntí seo a shuiteáil:

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"

Tar éis na síntí a shuiteáil, ní mór dúinn iad a thiomsú, ós rud é roimhe seo, le linn na suiteála, shonraigh muid an eochair --no-build chun am a shábháil. Anois cuirfimid dlús suntasach trí iad a thiomsú le chéile in aon turas amháin:

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

Anois reáchtáil an dá ordú seo a leanas chun é a rith den chéad uair saotharlann Iúpatar. D'fhéadfaí é a sheoladh le hordú amháin, ach sa chás seo, déanfar an t-ordú seolta, atá deacair a mheabhrú i d'intinn, a mheabhrú le bash sa choimeádán, agus ní ar an ósta, áit a bhfuil go leor orduithe ann cheana féin. iad a thaifeadadh sa stair :)

Logáil isteach sa choimeádán mar úsáideoir jupyter:

lxc exec jupyterlab -- su -l jupyter

Ar aghaidh, rith saotharlann Iúpatar le heochracha agus paraiméadair mar a léirítear:

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

Téigh go dtí an seoladh i do bhrabhsálaí gréasáin http://10.0.5.5:8888 agus ar an leathanach a osclaíonn dul isteach chomhartha rochtain a fheicfidh tú sa chonsól. Cóipeáil agus greamaigh ar an leathanach, ansin cliceáil Lógáil Isteach. Tar éis logáil isteach, téigh go dtí an roghchlár síntí ar an taobh clé, mar a thaispeántar san fhigiúr thíos, áit a spreagfar tú, nuair a ghníomhachtú an bainisteoir síneadh, chun rioscaí slándála a ghlacadh trí síntí a shuiteáil ó thríú páirtithe a bhfuil an t-ordú. Forbairt JupyterLab nach bhfuil freagrach:

Iúpatar á seoladh isteach i bhfithis LXD

Mar sin féin, táimid ag aonrú an t-iomlán saotharlann Iúpatar agus cuir i gcoimeádán é ionas nach féidir le síntí tríú páirtí a éilíonn agus a úsáideann NodeJS ar a laghad sonraí a ghoid ar an diosca seachas iad siúd a osclaíonn muid taobh istigh den choimeádán. Faigh do dhoiciméid phríobháideacha ar an ósta i /home ní dócha go n-éireoidh le próisis ón gcoimeádán, agus má dhéanann siad, ní mór duit pribhléidí a bheith agat ar chomhaid ar an gcóras óstach, ós rud é go ritheann muid an coimeádán i mód gan phribhléid. Bunaithe ar an bhfaisnéis seo, is féidir leat an riosca a bhaineann le síntí a áireamh i saotharlann Iúpatar.

Cruthaíodh leabhair nótaí IPython (leathanaigh i saotharlann Iúpatar) a chruthófar anois in eolaire baile an úsáideora - /home/jupyter, ach is é ár bpleananna na sonraí (roinnt) a roinnt idir an t-óstach agus an coimeádán, mar sin filleadh ar an consól agus stop saotharlann Iúpatar trí hotkey a fhorghníomhú - CTRL+C agus ag freagairt y arna iarraidh sin. Ansin cuir deireadh le seisiún idirghníomhach an úsáideora jupyter chomhlánú hotkey CTRL+D.

Sonraí a roinnt leis an óstach ^

Chun sonraí a roinnt leis an ósta, ní mór duit gléas a chruthú sa choimeádán a ligeann duit é seo a dhéanamh agus chun é seo a dhéanamh, reáchtáil an t-ordú seo a leanas nuair a shonraímid na heochracha seo a leanas:

  • lxc config device add - Cuireann an t-ordú cumraíocht an ghléis
  • jupyter — Aitheantas an choimeádáin a gcuirtear an chumraíocht leis
  • hostfs — Aitheantas an Ghléis. Is féidir leat aon ainm a shocrú.
  • disk — Sonraítear an cineál feiste
  • path — Sonraítear an cosán sa choimeádán ar a mbeidh LXD suite ar an ngléas seo
  • source - Sonraigh an fhoinse, an cosán chuig an eolaire ar an ósta is mian leat a roinnt leis an gcoimeádán. Sonraigh an cosán de réir do shainroghanna
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Don chatalóg /home/dv/projects/ipython-notebooks ní mór cead a shocrú d'úsáideoir an choimeádáin a bhfuil AitheantasÚsáideora comhionann leis faoi láthair SubUID + UID, féach caibidil Sábháilteacht. Pribhléidí Coimeádán in airteagal Bunghnéithe LXD - córais coimeádán Linux.

Socraigh an cead ar an ósta, áit a mbeidh an t-úinéir an t-úsáideoir coimeádán jupyter, agus an athróg $USER sonróidh sé d'úsáideoir óstaigh mar ghrúpa:

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

Dia duit, Domhanda! ^

Má tá seisiún consól fós agat oscail sa choimeádán le saotharlann Iúpatar, ansin é a atosú le eochair nua --notebook-dir tríd an luach a shocrú /mnt/hostfs mar an cosán go dtí fréamh na ríomhairí glúine sa choimeádán don fheiste a chruthaigh muid sa chéim roimhe seo:

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

Ansin téigh go dtí an leathanach http://10.0.5.5:8888 agus cruthaigh do chéad ríomhaire glúine trí chliceáil ar an gcnaipe ar an leathanach mar a thaispeántar sa phictiúr thíos:

Iúpatar á seoladh isteach i bhfithis LXD

Ansin, sa réimse ar an leathanach, cuir isteach an cód Python a thaispeánfaidh an clasaiceach Hello World!. Nuair a bheidh tú críochnaithe ag dul isteach, brúigh CTRL+ENTER nó an cnaipe "imirt" ar an mbarra uirlisí ag an mbarr chun go ndéanfaidh JupyterLab é seo:

Iúpatar á seoladh isteach i bhfithis LXD

Ag an bpointe seo, tá beagnach gach rud réidh le húsáid, ach ní bheidh sé suimiúil mura gcuirfimid modúil Python breise (feidhmchláir lán-chuimsitheach) ar féidir leo cumais chaighdeánacha Python a leathnú go suntasach. saotharlann Iúpatar, mar sin, bogaimis ar aghaidh :)

P.S. Is é an rud suimiúil go bhfuil an cur i bhfeidhm d'aois Iúpatar faoin ainm cód Leabhar Nótaí Iúpatar nach bhfuil imithe agus tá sé ann comhthreomhar le saotharlann Iúpatar. Chun aistriú go dtí an seanleagan, lean an nasc ag cur an iarmhír sa seoladh/tree, agus déantar an t-aistriú go dtí an leagan nua leis an iarmhír /lab, ach ní gá é a shonrú:

Cumais Python a leathnú ^

Sa chuid seo, cuirfimid modúil teanga cumhachtacha Python mar UimhPy, Pandas, matplotlib, IPyWidgets a bhfuil na torthaí comhtháite i ríomhairí glúine saotharlann Iúpatar.

Sula ndéantar na modúil Python liostaithe a shuiteáil tríd an mbainisteoir pacáiste pip ní mór dúinn spleáchais chórais a réiteach i Alpach Linux ar dtús:

  • g++ — Ag teastáil chun modúil a chur le chéile, toisc go gcuirtear cuid acu i bhfeidhm sa teanga C + + agus ceangal le Python ag am rite mar mhodúil dhénártha
  • freetype-dev - spleáchas do mhodúl Python matplotlib

Suiteáil spleáchais:

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

Tá fadhb amháin ann: i staid reatha dháileadh Alpach Linux, ní bheidh sé indéanta an leagan nua de NumPy a thiomsú; feicfear earráid tiomsaithe nach bhféadfainn a réiteach:

ERROR: Níorbh fhéidir rothaí a thógáil le haghaidh numpy a úsáideann PEP 517 agus nach féidir a shuiteáil go díreach

Mar sin, cuirfimid an modúl seo isteach mar phacáiste córais a dháileann leagan atá tiomsaithe cheana féin, ach beagán níos sine ná an méid atá ar fáil ar an suíomh faoi láthair:

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

Ar aghaidh, suiteáil modúil Python tríd an mbainisteoir pacáiste pip. Bí foighneach le do thoil mar beidh roinnt modúl le chéile agus b’fhéidir go dtógfaidh sé cúpla nóiméad. Ar mo mheaisín, ghlac ~15 nóiméad le tiomsú:

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

Taiscí suiteála a ghlanadh:

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

Modúil tástála i JupyterLab ^

Má tá tú ag rith saotharlann Iúpatar, é a atosú ionas go mbeidh na modúil nua-shuiteáilte i ngníomh. Chun seo a dhéanamh, i seisiún consól, cliceáil CTRL+C áit a bhfuil tú ag rith agus dul isteach y iarratas a stopadh agus ansin tosú arís saotharlann Iúpatar trí an tsaighead suas a bhrú ar an méarchlár ionas nach gcuirfear an t-ordú isteach arís agus arís eile Enter chun tús a chur leis:

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

Téigh go dtí an leathanach http://10.0.5.5:8888/lab nó athnuachan an leathanach i do bhrabhsálaí, agus ansin cuir isteach an cód seo a leanas i gcill leabhar nótaí nua:

%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

Ba cheart go bhfaighfeá toradh mar atá sa phictiúr thíos, áit IPyWidgets gineann eilimint Chomhéadain ar an leathanach a idirghníomhaíonn go hidirghníomhach leis an gcód foinse, agus freisin matplotlib taispeánann sé toradh an chóid i bhfoirm pictiúir mar ghraif feidhme:

Iúpatar á seoladh isteach i bhfithis LXD

Go leor samplaí IPyWidgets is féidir leat é a fháil i ranganna teagaisc anseo

Cad eile? ^

Maith thú má d’fhan tú agus má shroich tú deireadh an ailt. Níor phostáil mé script réidh d’aon ghnó ag deireadh an ailt a shuiteálfadh saotharlann Iúpatar i “cliceáil amháin” chun oibrithe a spreagadh :) Ach is féidir leat é a dhéanamh leat féin, ós rud é go bhfuil a fhios agat cheana féin, tar éis na horduithe a bhailiú i script Bash amháin :)

Is féidir leat freisin:

  • Socraigh ainm líonra don choimeádán in ionad seoladh IP trína scríobh go simplí /etc/hosts agus clóscríobh an seoladh sa bhrabhsálaí http://jupyter.local:8888
  • Seinn timpeall leis an teorainn acmhainne don choimeádán, mar sin léigh an chaibidil i cumais bhunúsacha LXD nó tuilleadh eolais a fháil ar shuíomh an fhorbróra LXD.
  • Athraigh an téama:

Iúpatar á seoladh isteach i bhfithis LXD

Agus i bhfad níos mó is féidir leat a dhéanamh! Sin é an méid. Guím gach rath ort!

Suas chun dáta: 15.04.2020/18/30 XNUMX:XNUMX - Earráidí ceartaithe sa chaibidil “Dia duit, an Domhain!”
Nuashonrú: 16.04.2020/10/00 XNUMX:XNUMX - Téacs ceartaithe agus curtha leis sa chur síos ar ghníomhachtú bainisteora síntí saotharlann Iúpatar
Nuashonrú: 16.04.2020/10/40 XNUMX:XNUMX - Earráidí ceartaithe a aimsíodh sa téacs agus athraíodh beagán chun feabhais an chaibidil “Bun-bhogearraí a shuiteáil agus an córas a chur ar bun”

Foinse: will.com

Add a comment