ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

ரூட் சலுகைகளுடன் இயங்க வேண்டிய குறியீட்டில் பிழை ஏற்பட்டால், அடிப்படை அமைப்பைப் பற்றி கவலைப்படாமல் எல்லாவற்றையும் கிழிக்காமல், லினக்ஸில் குறியீடு அல்லது கணினி பயன்பாடுகளை நீங்கள் எப்போதாவது பரிசோதித்திருக்கிறீர்களா?

ஆனால் நீங்கள் ஒரு கணினியில் பல்வேறு மைக்ரோ சர்வீஸ்களின் முழு தொகுப்பையும் சோதிக்க வேண்டும் அல்லது இயக்க வேண்டும் என்று சொல்லலாம். நூறு அல்லது ஆயிரம்?

ஹைப்பர்வைசரால் நிர்வகிக்கப்படும் மெய்நிகர் இயந்திரங்கள் மூலம், இது போன்ற சிக்கல்கள் தீர்க்கப்படும் மற்றும் தீர்க்கப்படும், ஆனால் என்ன விலை? எடுத்துக்காட்டாக, ஆல்பைன் லினக்ஸ் விநியோகத்தை அடிப்படையாகக் கொண்ட LXD இல் உள்ள ஒரு கொள்கலன் மட்டுமே பயன்படுத்துகிறது 7.60MB ரேம், மற்றும் தொடக்கத்திற்குப் பிறகு ரூட் பகிர்வு எங்கு உள்ளது 9.5MB! நீங்கள் அதை எப்படி விரும்புகிறீர்கள், எலோன் மஸ்க்? சரிபார்க்க பரிந்துரைக்கிறேன் LXD இன் அடிப்படை திறன்கள் - லினக்ஸில் ஒரு கொள்கலன் அமைப்பு

எல்எக்ஸ்டி கண்டெய்னர்கள் என்றால் என்ன என்பது பொதுவாகத் தெளிவாகத் தெரிந்த பிறகு, இன்னும் மேலே சென்று யோசிப்போம், ஹோஸ்டுக்கான குறியீட்டை பாதுகாப்பாக இயக்கவும், வரைபடங்களை உருவாக்கவும், உங்கள் குறியீட்டுடன் UI- விட்ஜெட்களை இணைக்கவும், அத்தகைய அறுவடை தளம் இருந்தால் என்ன செய்வது? பிளாக்ஜாக் உடன் உரையுடன் குறியீட்டை நிரப்பு... வடிவமைத்தல்? ஒருவித ஊடாடும் வலைப்பதிவு? ஆஹா... எனக்கு வேணும்! வேண்டும்! 🙂

பூனையின் கீழ் பாருங்கள், அங்கு நாங்கள் ஒரு கொள்கலனில் தொடங்குவோம் ஜூபிட்டர்லேப் - காலாவதியான ஜூபிடர் நோட்புக்கிற்குப் பதிலாக அடுத்த தலைமுறை பயனர் இடைமுகம், மேலும் நாங்கள் பைதான் தொகுதிகளை நிறுவுவோம் நம்பி, பாண்டாக்கள், மேட்ப்ளோட்லிப், IPyWidgets இது மேலே பட்டியலிடப்பட்டுள்ள அனைத்தையும் செய்ய உங்களை அனுமதிக்கும் மற்றும் அனைத்தையும் ஒரு சிறப்பு கோப்பில் சேமிக்கும் - ஒரு IPython மடிக்கணினி.

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

சுற்றுப்பாதை புறப்படும் திட்டம் ^

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

மேலே உள்ள திட்டத்தைச் செயல்படுத்துவதை எளிதாக்க ஒரு சுருக்கமான செயல் திட்டத்தை கோடிட்டுக் காட்டுவோம்:

  • விநியோக கருவியின் அடிப்படையில் ஒரு கொள்கலனை நிறுவி தொடங்குவோம் ஆல்பைன் லினக்ஸ். இந்த விநியோகத்தை நாங்கள் பயன்படுத்துவோம், ஏனெனில் இது மினிமலிசத்தை இலக்காகக் கொண்டது மற்றும் அதில் மிகவும் தேவையான மென்பொருளை மட்டுமே நிறுவும், மிதமிஞ்சிய எதுவும் இல்லை.
  • கொள்கலனில் கூடுதல் மெய்நிகர் வட்டைச் சேர்த்து அதற்கு ஒரு பெயரைக் கொடுப்போம் - hostfs மற்றும் அதை ரூட் கோப்பு முறைமையில் ஏற்றவும். இந்த வட்டு கொள்கலனுக்குள் கொடுக்கப்பட்ட கோப்பகத்திலிருந்து ஹோஸ்டில் உள்ள கோப்புகளைப் பயன்படுத்துவதை சாத்தியமாக்கும். எனவே, எங்கள் தரவு கொள்கலனில் இருந்து சுயாதீனமாக இருக்கும். கொள்கலன் நீக்கப்பட்டால், தரவு ஹோஸ்டில் இருக்கும். மேலும், கொள்கலன் விநியோகத்தின் நிலையான பிணைய வழிமுறைகளைப் பயன்படுத்தாமல் பல கொள்கலன்களுக்கு இடையில் ஒரே தரவைப் பகிர்வதற்கு இந்தத் திட்டம் பயனுள்ளதாக இருக்கும்.
  • Bash, sudo, தேவையான நூலகங்களை நிறுவி, கணினி பயனரைச் சேர்த்து, கட்டமைப்போம்
  • பைதான், மாட்யூல்களை நிறுவி அவற்றுக்கான பைனரி சார்புகளை தொகுக்கலாம்
  • நிறுவி துவக்குவோம் ஜூபிட்டர்லேப், தோற்றத்தைத் தனிப்பயனாக்கவும், அதற்கான நீட்டிப்புகளை நிறுவவும்.

இந்த கட்டுரையில், கொள்கலனைத் தொடங்குவோம், எல்எக்ஸ்டியை நிறுவுவதையும் கட்டமைப்பதையும் நாங்கள் கருத்தில் கொள்ள மாட்டோம், இதையெல்லாம் மற்றொரு கட்டுரையில் காணலாம் - LXD - Linux கொள்கலன் அமைப்புகளின் அடிப்படை அம்சங்கள்.

அடிப்படை அமைப்பின் நிறுவல் மற்றும் கட்டமைப்பு ^

படத்தைக் குறிப்பிடும் கட்டளையுடன் ஒரு கொள்கலனை உருவாக்குகிறோம் - alpine3, கொள்கலனுக்கான அடையாளங்காட்டி - jupyterlab மற்றும், தேவைப்பட்டால், கட்டமைப்பு சுயவிவரங்கள்:

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

இங்கே நான் ஒரு கட்டமைப்பு சுயவிவரத்தைப் பயன்படுத்துகிறேன் hddroot ரூட் பகிர்வுடன் ஒரு கொள்கலனை உருவாக்க இது குறிப்பிடுகிறது சேமிப்புக் குளம் இயற்பியல் HDD வட்டில் அமைந்துள்ளது:

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

இது HDD வட்டில் உள்ள கொள்கலன்களுடன் பரிசோதனை செய்ய எனக்கு வாய்ப்பளிக்கிறது, SSD வட்டின் வளங்களைச் சேமிக்கிறது, இது எனது கணினியிலும் கிடைக்கிறது 🙂 அதற்காக நான் ஒரு தனி கட்டமைப்பு சுயவிவரத்தை உருவாக்கியுள்ளேன் ssdroot.

கொள்கலன் உருவாக்கப்பட்ட பிறகு, அது மாநிலத்தில் உள்ளது STOPPED, எனவே நாம் அதில் init அமைப்பை இயக்குவதன் மூலம் அதைத் தொடங்க வேண்டும்:

lxc start jupyterlab

விசையைப் பயன்படுத்தி LXD இல் உள்ள கொள்கலன்களின் பட்டியலைக் காண்பிப்போம் -c எது என்பதைக் குறிக்கிறது cஓலம்கள் காட்சி:

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

கொள்கலனை உருவாக்கும் போது, ​​ஐபி முகவரி தோராயமாக தேர்ந்தெடுக்கப்பட்டது, ஏனெனில் நாங்கள் உள்ளமைவு சுயவிவரத்தைப் பயன்படுத்தினோம் default இது முன்னர் கட்டுரையில் கட்டமைக்கப்பட்டது LXD - Linux கொள்கலன் அமைப்புகளின் அடிப்படை அம்சங்கள்.

கன்டெய்னர் மட்டத்தில் பிணைய இடைமுகத்தை உருவாக்குவதன் மூலம் இந்த ஐபி முகவரியை மிகவும் மறக்கமுடியாததாக மாற்றுவோம், ஆனால் தற்போதைய உள்ளமைவில் உள்ள கட்டமைப்பு சுயவிவர மட்டத்தில் அல்ல. நீங்கள் இதைச் செய்ய வேண்டியதில்லை, நீங்கள் அதைத் தவிர்க்கலாம்.

பிணைய இடைமுகத்தை உருவாக்குதல் eth0 சுவிட்ச் (நெட்வொர்க் பிரிட்ஜ்) உடன் இணைக்கிறோம் lxdbr0 இதில் முந்தைய கட்டுரையின்படி நாங்கள் NAT ஐ இயக்கினோம், மேலும் கொள்கலன் இப்போது இணையத்தை அணுகும், மேலும் இடைமுகத்திற்கு நிலையான ஐபி முகவரியையும் நாங்கள் ஒதுக்குகிறோம் - 10.0.5.5:

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

சாதனத்தைச் சேர்த்த பிறகு, கொள்கலனை மறுதொடக்கம் செய்ய வேண்டும்:

lxc restart jupyterlab

கொள்கலனின் நிலையை சரிபார்க்கிறது:

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

அடிப்படை மென்பொருளை நிறுவுதல் மற்றும் கணினியை அமைத்தல் ^

எங்கள் கொள்கலனை நிர்வகிக்க, நீங்கள் பின்வரும் மென்பொருளை நிறுவ வேண்டும்:

தொகுப்பு
விளக்கம்

பாஷ்
குனு போர்ன் அகெய்ன் ஷெல்

பாஷ்-நிறைவு
பாஷ் ஷெல்லுக்கான நிரல்படுத்தக்கூடிய நிறைவு

சூடோ
சில கட்டளைகளை ரூட்டாக இயக்கும் திறனை சில பயனர்களுக்கு வழங்கவும்

நிழல்
நிழல் கோப்புகள் மற்றும் PAM க்கான ஆதரவுடன் கடவுச்சொல் மற்றும் கணக்கு மேலாண்மை கருவி தொகுப்பு

tzdata
நேர மண்டலம் மற்றும் பகல் சேமிப்பு நேரத் தரவுக்கான ஆதாரங்கள்

நானோ
மேம்பாடுகள் கொண்ட Pico எடிட்டர் குளோன்

கூடுதலாக, பின்வரும் தொகுப்புகளை நிறுவுவதன் மூலம் கணினி மேன்-பக்கங்களில் ஆதரவை நிறுவலாம் - man man-pages mdocml-apropos less

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

நாம் பயன்படுத்திய கட்டளைகள் மற்றும் விசைகளைப் பார்ப்போம்:

  • lxc - LXD கிளையண்டை அழைக்கவும்
  • exec - கண்டெய்னரில் கட்டளையை இயக்கும் LXD கிளையன்ட் முறை
  • jupyterlab - கொள்கலன் ஐடி
  • -- - கூடுதல் விசைகளை விசைகளாக விளக்கக் கூடாது என்பதைக் குறிப்பிடும் ஒரு சிறப்பு விசை lxc மற்றும் மீதமுள்ள சரத்தை கொள்கலனுக்கு அனுப்பவும்
  • apk — Alpine Linux விநியோக தொகுப்பு மேலாளர்
  • add — கட்டளைக்குப் பின் குறிப்பிடப்பட்ட தொகுப்புகளை நிறுவும் தொகுப்பு மேலாளர் முறை

அடுத்து, கணினியில் நேர மண்டலத்தை அமைப்போம் Europe/Moscow:

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

நேர மண்டலத்தை நிறுவிய பின், தொகுப்பு tzdata கணினியில் இனி தேவையில்லை, அது இடத்தை எடுக்கும், எனவே அதை நீக்கலாம்:

lxc exec jupyterlab -- apk del tzdata

நேர மண்டலத்தை சரிபார்க்கிறது:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

கன்டெய்னரில் புதிய பயனர்களுக்கு பாஷ் அமைப்பதில் அதிக நேரம் செலவழிக்காமல் இருக்க, பின்வரும் படிகளில் ஹோஸ்ட் சிஸ்டத்தில் இருந்து ரெடிமேட் ஸ்கெல் கோப்புகளை நகலெடுப்போம். இது பாஷை ஒரு கொள்கலனில் ஊடாடும் வகையில் அழகாக மாற்ற அனுமதிக்கும். எனது ஹோஸ்ட் சிஸ்டம் மஞ்சாரோ லினக்ஸ் மற்றும் கோப்புகள் நகலெடுக்கப்படுகின்றன /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors கொள்கையளவில் அவை ஆல்பைன் லினக்ஸுக்கு ஏற்றவை மற்றும் சிக்கலான சிக்கல்களை ஏற்படுத்தாது, ஆனால் உங்களிடம் வேறு விநியோகம் இருக்கலாம் மற்றும் கொள்கலனில் பாஷை இயக்கும்போது பிழை இருந்தால் நீங்கள் சுயாதீனமாக கண்டுபிடிக்க வேண்டும்.

ஸ்கெல் கோப்புகளை கொள்கலனில் நகலெடுக்கவும். முக்கிய --create-dirs அவை இல்லை என்றால் தேவையான கோப்பகங்களை உருவாக்கும்:

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

ஏற்கனவே இருக்கும் ரூட் பயனருக்கு, கொள்கலனில் நகலெடுக்கப்பட்ட ஸ்கெல் கோப்புகளை முகப்பு கோப்பகத்திற்கு நகலெடுக்கவும்:

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

ஆல்பைன் லினக்ஸ் பயனர்களுக்கான கணினி ஷெல்லை நிறுவுகிறது /bin/sh, நாங்கள் அதை மாற்றுவோம் root பாஷில் பயனர்:

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

என்று root பயனர் கடவுச்சொல் இல்லாதவர் அல்ல, அவர் கடவுச்சொல்லை அமைக்க வேண்டும். பின்வரும் கட்டளை அவருக்காக ஒரு புதிய சீரற்ற கடவுச்சொல்லை உருவாக்கி அமைக்கும், அதன் செயல்பாட்டிற்குப் பிறகு நீங்கள் கன்சோல் திரையில் பார்ப்பீர்கள்:

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

மேலும், ஒரு புதிய கணினி பயனரை உருவாக்குவோம் - jupyter அதற்காக நாங்கள் பின்னர் கட்டமைப்போம் ஜூபிட்டர்லேப்:

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

அதற்கான கடவுச்சொல்லை உருவாக்கி அமைப்போம்:

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

அடுத்து நாம் இரண்டு கட்டளைகளை இயக்குவோம், முதலாவது ஒரு கணினி குழுவை உருவாக்கும் sudo, மற்றும் இரண்டாவது அதில் ஒரு பயனரைச் சேர்க்கும் jupyter:

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

பயனர் எந்தக் குழுக்களைச் சேர்ந்தவர் என்பதைப் பார்ப்போம் jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

எல்லாம் சரி, தொடரலாம்.

குழுவில் உள்ள அனைத்து பயனர்களையும் அனுமதிக்கவும் sudo கட்டளையைப் பயன்படுத்தவும் sudo. இதைச் செய்ய, பின்வரும் ஸ்கிரிப்டை இயக்கவும் sed உள்ளமைவு கோப்பில் உள்ள அளவுரு வரியை uncomments செய்கிறது /etc/sudoers:

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

JupyterLab ஐ நிறுவுதல் மற்றும் கட்டமைத்தல் ^

ஜூபிட்டர்லேப் ஒரு பைதான் பயன்பாடாகும், எனவே நாம் முதலில் இந்த மொழிபெயர்ப்பாளரை நிறுவ வேண்டும். மேலும், ஜூபிட்டர்லேப் பைதான் தொகுப்பு மேலாளரைப் பயன்படுத்தி நிறுவுவோம் pip, மற்றும் கணினி ஒன்று அல்ல, ஏனெனில் இது கணினி களஞ்சியத்தில் காலாவதியாக இருக்கலாம், எனவே, பின்வரும் தொகுப்புகளை நிறுவுவதன் மூலம் அதற்கான சார்புகளை நாம் கைமுறையாக தீர்க்க வேண்டும் - python3 python3-dev gcc libc-dev zeromq-dev:

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

பைதான் தொகுதிகள் மற்றும் தொகுப்பு மேலாளரைப் புதுப்பிப்போம் pip தற்போதைய பதிப்பிற்கு:

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

நிறுவு ஜூபிட்டர்லேப் தொகுப்பு மேலாளர் மூலம் pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

உள்ள நீட்டிப்புகள் முதல் ஜூபிட்டர்லேப் சோதனைக்குரியவை மற்றும் அதிகாரப்பூர்வமாக jupyterlab தொகுப்புடன் அனுப்பப்படவில்லை, எனவே நாம் அதை கைமுறையாக நிறுவி உள்ளமைக்க வேண்டும்.

NodeJS மற்றும் அதற்கான தொகுப்பு மேலாளரை நிறுவுவோம் - NPM, என்பதால் ஜூபிட்டர்லேப் அதன் நீட்டிப்புகளுக்கு அவற்றைப் பயன்படுத்துகிறது:

lxc exec jupyterlab -- apk add nodejs npm

க்கான நீட்டிப்புகளுக்கு ஜூபிட்டர்லேப் நாங்கள் வேலை செய்ததை நிறுவுவோம், அவை பயனர் கோப்பகத்தில் நிறுவப்பட வேண்டும், ஏனெனில் பயன்பாடு பயனரிடமிருந்து தொடங்கப்படும் jupyter. சிக்கல் என்னவென்றால், வெளியீட்டு கட்டளையில் ஒரு கோப்பகத்திற்கு அனுப்பக்கூடிய அளவுரு இல்லை; பயன்பாடு சூழல் மாறியை மட்டுமே ஏற்றுக்கொள்கிறது, எனவே நாம் அதை வரையறுக்க வேண்டும். இதைச் செய்ய, மாறி ஏற்றுமதி கட்டளையை எழுதுவோம் JUPYTERLAB_DIR பயனரின் சூழலில் jupyter, தாக்கல் செய்ய .bashrcபயனர் உள்நுழையும் ஒவ்வொரு முறையும் இது செயல்படுத்தப்படுகிறது:

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

அடுத்த கட்டளை ஒரு சிறப்பு நீட்டிப்பை நிறுவும் - நீட்டிப்பு மேலாளர் ஜூபிட்டர்லேப்:

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

இப்போது முதல் வெளியீட்டிற்கு எல்லாம் தயாராக உள்ளது ஜூபிட்டர்லேப், ஆனால் இன்னும் சில பயனுள்ள நீட்டிப்புகளை நிறுவலாம்:

  • toc - பொருளடக்கம், ஒரு கட்டுரை/நோட்புக்கில் தலைப்புகளின் பட்டியலை உருவாக்குகிறது
  • jupyterlab-horizon-theme - UI தீம்
  • jupyterlab_neon_theme - UI தீம்
  • jupyterlab-ubu-theme - மற்றொன்று ஆசிரியரிடமிருந்து தீம் இந்த கட்டுரை :) ஆனால் இந்த விஷயத்தில், GitHub களஞ்சியத்திலிருந்து நிறுவல் காண்பிக்கப்படும்

எனவே, இந்த நீட்டிப்புகளை நிறுவ பின்வரும் கட்டளைகளை தொடர்ச்சியாக இயக்கவும்:

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"

நீட்டிப்புகளை நிறுவிய பின், அவற்றை தொகுக்க வேண்டும், ஏனெனில் முன்பு, நிறுவலின் போது, ​​நாங்கள் விசையை குறிப்பிட்டோம். --no-build நேரத்தை சேமிக்க. இப்போது அவற்றை ஒரே நேரத்தில் தொகுப்பதன் மூலம் கணிசமாக வேகப்படுத்துவோம்:

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

இப்போது அதை முதல் முறையாக இயக்க பின்வரும் இரண்டு கட்டளைகளை இயக்கவும் ஜூபிட்டர்லேப். ஒரு கட்டளையுடன் அதைத் தொடங்க முடியும், ஆனால் இந்த விஷயத்தில், உங்கள் மனதில் நினைவில் கொள்ள கடினமாக இருக்கும் வெளியீட்டு கட்டளை, ஏற்கனவே போதுமான கட்டளைகள் உள்ள ஹோஸ்டில் அல்ல, கொள்கலனில் பாஷ் மூலம் நினைவில் வைக்கப்படும். அவற்றை வரலாற்றில் பதிவு செய்ய :)

ஒரு பயனராக கொள்கலனில் உள்நுழைக jupyter:

lxc exec jupyterlab -- su -l jupyter

அடுத்து, இயக்கவும் ஜூபிட்டர்லேப் சுட்டிக்காட்டப்பட்ட விசைகள் மற்றும் அளவுருக்களுடன்:

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

உங்கள் இணைய உலாவியில் உள்ள முகவரிக்குச் செல்லவும் http://10.0.5.5:8888 மற்றும் திறக்கும் பக்கத்தில் உள்ளிடவும் டோக்கன் கன்சோலில் நீங்கள் பார்க்கும் அணுகல். அதை நகலெடுத்து பக்கத்தில் ஒட்டவும், பின்னர் கிளிக் செய்யவும் உள் நுழை. உள்நுழைந்த பிறகு, கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளபடி, இடதுபுறத்தில் உள்ள நீட்டிப்புகள் மெனுவிற்குச் செல்லவும், அங்கு நீட்டிப்பு மேலாளரை செயல்படுத்தும் போது, ​​கட்டளைக்கு மூன்றாம் தரப்பினரிடமிருந்து நீட்டிப்புகளை நிறுவுவதன் மூலம் பாதுகாப்பு அபாயங்களை எடுக்குமாறு நீங்கள் கேட்கப்படுவீர்கள். JupyterLab வளர்ச்சி பொறுப்பல்ல:

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

இருப்பினும், நாங்கள் முழுவதையும் தனிமைப்படுத்துகிறோம் ஜூபிட்டர்லேப் மற்றும் அதை ஒரு கொள்கலனில் வைக்கவும், இதனால் NodeJS தேவைப்படும் மற்றும் பயன்படுத்தும் மூன்றாம் தரப்பு நீட்டிப்புகள் குறைந்தபட்சம் கன்டெய்னருக்குள் திறக்கும் வட்டில் உள்ள தரவைத் திருட முடியாது. ஹோஸ்டில் உள்ள உங்கள் தனிப்பட்ட ஆவணங்களைப் பெறுங்கள் /home கொள்கலனில் இருந்து வரும் செயல்முறைகள் வெற்றியடைய வாய்ப்பில்லை, அப்படிச் செய்தால், ஹோஸ்ட் சிஸ்டத்தில் உள்ள கோப்புகளில் நீங்கள் சிறப்புரிமைகளைப் பெற வேண்டும், ஏனெனில் நாங்கள் கொள்கலனை இயக்குகிறோம் சலுகையற்ற முறை. இந்தத் தகவலின் அடிப்படையில், நீட்டிப்புகளைச் சேர்ப்பதன் அபாயத்தை நீங்கள் மதிப்பிடலாம் ஜூபிட்டர்லேப்.

உருவாக்கப்பட்ட IPython குறிப்பேடுகள் (பக்கங்களில் ஜூபிட்டர்லேப்) இப்போது பயனரின் முகப்பு கோப்பகத்தில் உருவாக்கப்படும் - /home/jupyter, ஆனால் ஹோஸ்டுக்கும் கொள்கலனுக்கும் இடையில் தரவைப் (பகிர்வு) பிரிப்பதே எங்கள் திட்டங்களாகும், எனவே கன்சோலுக்குத் திரும்பி நிறுத்தவும் ஜூபிட்டர்லேப் ஹாட்கியை இயக்குவதன் மூலம் - CTRL+C மற்றும் பதில் y கோரிக்கை மீது. பின்னர் பயனரின் ஊடாடும் அமர்வை நிறுத்தவும் jupyter ஒரு ஹாட்ஸ்கியை நிறைவு செய்தல் CTRL+D.

ஹோஸ்டுடன் தரவைப் பகிர்தல் ^

ஹோஸ்டுடன் தரவைப் பகிர, நீங்கள் இதைச் செய்ய அனுமதிக்கும் ஒரு சாதனத்தை கொள்கலனில் உருவாக்க வேண்டும், இதைச் செய்ய, பின்வரும் கட்டளையை இயக்கவும், அங்கு பின்வரும் விசைகளை நாங்கள் குறிப்பிடுகிறோம்:

  • lxc config device add — கட்டளை சாதன கட்டமைப்பை சேர்க்கிறது
  • jupyter — கட்டமைப்பு சேர்க்கப்பட்டுள்ள கொள்கலனின் ஐடி
  • hostfs - சாதன ஐடி. நீங்கள் எந்த பெயரையும் அமைக்கலாம்.
  • disk - சாதனத்தின் வகை குறிக்கப்படுகிறது
  • path — LXD இந்தச் சாதனத்தை ஏற்றும் கொள்கலனில் உள்ள பாதையைக் குறிப்பிடுகிறது
  • source — நீங்கள் கொள்கலனுடன் பகிர விரும்பும் ஹோஸ்டில் உள்ள கோப்பகத்திற்கான மூலத்தைக் குறிப்பிடவும். உங்கள் விருப்பங்களுக்கு ஏற்ப பாதையை குறிப்பிடவும்
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

அட்டவணைக்கு /home/dv/projects/ipython-notebooks தற்சமயம் UID ஐ வைத்திருக்கும் கொள்கலன் பயனருக்கு அனுமதி அமைக்கப்பட வேண்டும் SubUID + UID, அத்தியாயத்தைப் பார்க்கவும் பாதுகாப்பு. கொள்கலன் சலுகைகள் கட்டுரையில் LXD - Linux கொள்கலன் அமைப்புகளின் அடிப்படை அம்சங்கள்.

ஹோஸ்டில் அனுமதியை அமைக்கவும், அங்கு உரிமையாளர் கொள்கலன் பயனராக இருப்பார் jupyter, மற்றும் மாறி $USER உங்கள் ஹோஸ்ட் பயனரை ஒரு குழுவாகக் குறிப்பிடும்:

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

வணக்கம், உலகமே! ^

உங்களிடம் இன்னும் கன்சோல் அமர்வு இருந்தால், கொள்கலனில் திறக்கவும் ஜூபிட்டர்லேப், பின்னர் ஒரு புதிய விசையுடன் அதை மீண்டும் துவக்கவும் --notebook-dir மதிப்பை அமைப்பதன் மூலம் /mnt/hostfs முந்தைய கட்டத்தில் நாங்கள் உருவாக்கிய சாதனத்திற்கான கொள்கலனில் உள்ள மடிக்கணினிகளின் மூலத்திற்கான பாதையாக:

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

பின்னர் பக்கத்திற்குச் செல்லவும் http://10.0.5.5:8888 கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளபடி பக்கத்தில் உள்ள பொத்தானைக் கிளிக் செய்வதன் மூலம் உங்கள் முதல் மடிக்கணினியை உருவாக்கவும்:

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

பின்னர், பக்கத்தில் உள்ள புலத்தில், கிளாசிக் காண்பிக்கும் பைதான் குறியீட்டை உள்ளிடவும் Hello World!. நுழைந்து முடித்ததும் அழுத்தவும் CTRL+ENTER அல்லது JupyterLab இதைச் செய்ய மேலே உள்ள கருவிப்பட்டியில் உள்ள "ப்ளே" பொத்தான்:

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

இந்த கட்டத்தில், கிட்டத்தட்ட அனைத்தும் பயன்பாட்டிற்கு தயாராக உள்ளன, ஆனால் பைத்தானின் நிலையான திறன்களை கணிசமாக விரிவாக்கக்கூடிய கூடுதல் பைதான் தொகுதிகளை (முழு அளவிலான பயன்பாடுகள்) நிறுவவில்லை என்றால் அது ஆர்வமற்றதாக இருக்கும். ஜூபிட்டர்லேப்எனவே, தொடரலாம் :)

PS பழைய செயல்படுத்தல் என்பது சுவாரஸ்யமான விஷயம் வியாழன் குறியீட்டு பெயரில் ஜூபிட்டர் நோட்புக் போகவில்லை மற்றும் அது இணையாக உள்ளது ஜூபிட்டர்லேப். பழைய பதிப்பிற்கு மாற, முகவரியில் பின்னொட்டைச் சேர்க்கும் இணைப்பைப் பின்தொடரவும்/tree, மற்றும் புதிய பதிப்பிற்கான மாற்றம் பின்னொட்டுடன் மேற்கொள்ளப்படுகிறது /lab, ஆனால் அது குறிப்பிடப்பட வேண்டியதில்லை:

பைத்தானின் திறன்களை விரிவுபடுத்துதல் ^

இந்த பிரிவில், நாம் சக்திவாய்ந்த பைதான் மொழி தொகுதிகளை நிறுவுவோம் நம்பி, பாண்டாக்கள், மேட்ப்ளோட்லிப், IPyWidgets இதன் முடிவுகள் மடிக்கணினிகளில் ஒருங்கிணைக்கப்பட்டுள்ளன ஜூபிட்டர்லேப்.

தொகுப்பு மேலாளர் மூலம் பட்டியலிடப்பட்ட பைதான் தொகுதிகளை நிறுவும் முன் pip ஆல்பைன் லினக்ஸில் கணினி சார்புகளை நாம் முதலில் தீர்க்க வேண்டும்:

  • g++ — தொகுதிகள் தொகுக்கத் தேவை, ஏனெனில் அவற்றில் சில மொழியில் செயல்படுத்தப்படுகின்றன சி ++ மற்றும் பைனரி தொகுதிகளாக இயக்க நேரத்தில் பைத்தானை இணைக்கவும்
  • freetype-dev - பைதான் தொகுதிக்கான சார்பு மேட்ப்ளோட்லிப்

சார்புகளை நிறுவுதல்:

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

ஒரு சிக்கல் உள்ளது: Alpine Linux விநியோகத்தின் தற்போதைய நிலையில், NumPy இன் புதிய பதிப்பைத் தொகுக்க முடியாது; என்னால் தீர்க்க முடியாத ஒரு தொகுப்பு பிழை தோன்றும்:

பிழை: PEP 517 ஐப் பயன்படுத்தும் நம்பிக்கு சக்கரங்களை உருவாக்க முடியவில்லை மற்றும் நேரடியாக நிறுவ முடியாது

எனவே, இந்த தொகுதியை ஏற்கனவே தொகுக்கப்பட்ட பதிப்பை விநியோகிக்கும் கணினி தொகுப்பாக நிறுவுவோம், ஆனால் தற்போது தளத்தில் உள்ளதை விட சற்று பழையது:

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

அடுத்து, தொகுப்பு மேலாளர் மூலம் பைதான் தொகுதிகளை நிறுவவும் pip. சில தொகுதிகள் தொகுக்கப்படும் மற்றும் சில நிமிடங்கள் ஆகலாம் என்பதால் பொறுமையாக இருங்கள். எனது கணினியில், தொகுப்பு ~15 நிமிடங்கள் எடுத்தது:

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

நிறுவல் தற்காலிக சேமிப்புகளை அழித்தல்:

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

JupyterLab இல் தொகுதிகளை சோதிக்கிறது ^

நீங்கள் ஓடிக்கொண்டிருந்தால் ஜூபிட்டர்லேப், புதிதாக நிறுவப்பட்ட தொகுதிகள் செயல்படுத்தப்படும் வகையில் அதை மீண்டும் துவக்கவும். இதைச் செய்ய, கன்சோல் அமர்வில், கிளிக் செய்யவும் CTRL+C நீங்கள் அதை இயக்கும் இடத்தில் உள்ளிடவும் y கோரிக்கையை நிறுத்திவிட்டு மீண்டும் தொடங்கவும் ஜூபிட்டர்லேப் விசைப்பலகையில் மேல் அம்புக்குறியை அழுத்துவதன் மூலம் கட்டளையை மீண்டும் மீண்டும் உள்ளிடக்கூடாது Enter அதை தொடங்க:

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

பக்கத்திற்குச் செல்லவும் http://10.0.5.5:8888/lab அல்லது உங்கள் உலாவியில் பக்கத்தைப் புதுப்பிக்கவும், பின்னர் பின்வரும் குறியீட்டை புதிய நோட்புக் கலத்தில் உள்ளிடவும்:

%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

கீழே உள்ள படத்தில் உள்ளதைப் போன்ற ஒரு முடிவை நீங்கள் பெற வேண்டும் IPyWidgets மூலக் குறியீட்டுடன் ஊடாடும் வகையில் ஒரு UI உறுப்பை பக்கத்தில் உருவாக்குகிறது, மேலும் மேட்ப்ளோட்லிப் குறியீட்டின் முடிவை ஒரு செயல்பாட்டு வரைபடமாக ஒரு படத்தின் வடிவத்தில் காட்டுகிறது:

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

பல உதாரணங்கள் IPyWidgets நீங்கள் அதை பயிற்சிகளில் காணலாம் இங்கே

வேறு என்ன? ^

நீங்கள் தொடர்ந்து கட்டுரையின் இறுதியை அடைந்தால் நல்லது. நான் வேண்டுமென்றே ஒரு ஆயத்த ஸ்கிரிப்டை நிறுவும் கட்டுரையின் முடிவில் இடுகையிடவில்லை ஜூபிட்டர்லேப் தொழிலாளர்களை ஊக்குவிக்க "ஒரே கிளிக்கில்" :) ஆனால் நீங்கள் அதை நீங்களே செய்யலாம், ஏனென்றால் கட்டளைகளை ஒரே பாஷ் ஸ்கிரிப்ட்டில் எவ்வாறு சேகரித்தீர்கள் என்பது உங்களுக்கு ஏற்கனவே தெரியும் :)

நீங்கள் மேலும்:

  • ஒரு ஐபி முகவரிக்கு பதிலாக கொள்கலனுக்கு நெட்வொர்க் பெயரை அமைக்கவும், அதை எளிமையாக எழுதவும் /etc/hosts உலாவியில் முகவரியை தட்டச்சு செய்யவும் http://jupyter.local:8888
  • கொள்கலனுக்கான ஆதார வரம்புடன் விளையாடுங்கள், இதற்காக அத்தியாயத்தைப் படிக்கவும் அடிப்படை LXD திறன்கள் அல்லது LXD டெவலப்பர் தளத்தில் கூடுதல் தகவல்களைப் பெறவும்.
  • தீம் மாற்றவும்:

ஜூபிட்டரை LXD சுற்றுப்பாதையில் செலுத்துகிறது

மேலும் நீங்கள் இன்னும் நிறைய செய்ய முடியும்! அவ்வளவுதான். நான் உங்கள் வெற்றிக்காக வாழ்த்துகின்றேன்!

புதுப்பிப்பு: 15.04.2020/18/30 XNUMX:XNUMX - “வணக்கம், உலகம்!” அத்தியாயத்தில் பிழைகள் திருத்தப்பட்டன.
புதுப்பிப்பு: 16.04.2020/10/00 XNUMX:XNUMX — நீட்டிப்பு மேலாளர் செயல்படுத்தல் விளக்கத்தில் திருத்தப்பட்டு உரை சேர்க்கப்பட்டது ஜூபிட்டர்லேப்
புதுப்பிப்பு: 16.04.2020/10/40 XNUMX:XNUMX — உரையில் காணப்படும் பிழைகள் சரி செய்யப்பட்டு, “அடிப்படை மென்பொருளை நிறுவுதல் மற்றும் கணினியை அமைத்தல்” என்ற அத்தியாயம் சிறப்பாக மாற்றப்பட்டது.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்