แแแแกแแ แแฅแแแแแ แแแแฃแฅแกแแก แแแแแก แแ แกแแกแขแแแแก แแแแฃแแแแฃแ แ แแ แแแ แแแแแแก แแฅแกแแแ แแแแแขแแแแก แแแขแแ แแแ แซแแ แแแแแ แกแแกแขแแแแก แจแแกแแฎแแ แคแแฅแ แแก แแแ แแจแ แแ แงแแแแแคแ แแก แแแแแ แแแแก แแแ แแจแ แแแแแก แจแแชแแแแแก แจแแแแฎแแแแแจแ, แ แแแแแแช แฃแแแ แแแฃแจแแแก root แแ แแแแแแแแแแแ?
แแแแ แแ แ แ แจแแแซแแแแ แแแฅแแแก แแ แคแแฅแขแแ, แ แแ แแแฅแแแ, แแฅแแแ แแญแแ แแแแแ แกแฎแแแแแกแฎแแ แแแแ แแกแแ แแแกแแแแก แแแแแ แแแแกแขแแ แแก แขแแกแขแแ แแแ แแ แแแจแแแแ แแ แ แแแแฅแแแแแ? แแกแ แแ แแฃแแแแช แแแแกแ?
แฐแแแแ แแแแแ แแก แแแแ แแแ แแฃแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแ, แแกแแแ แแ แแแแแแแแ แจแแแซแแแแ แแ แแแแแแ แแแแ, แแแแ แแ แ แ แคแแกแแ? แแแแแแแแแ, แแแแขแแแแแ แ LXD-แจแ, แ แแแแแแช แแแคแฃแซแแแแฃแแแ Alpine Linux แแแกแขแ แแแฃแชแแแแ, แแแแฎแแแ แก แแฎแแแแ 7.60MB
แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ แแ แกแแแแช root แแแแแงแแคแ แแแแแแแก แแแจแแแแแก แจแแแแแ 9.5MB
! แ แแแแ แแแแฌแแแก แแก, แแแแ แแแกแ? แแแ แฉแแแ แจแแแแแฌแแแ LXD-แแก แซแแ แแแแแ แจแแกแแซแแแแแแแแแ - แแแแขแแแแแ แแก แกแแกแขแแแ Linux-แจแ
แแแก แจแแแแแ, แ แแช แแแแ แแแ แแแแแแแ แ แ แแ แแก LXD แแแแขแแแแแ แแแ, แแแแแ แฌแแแแแแ แฃแคแ แ แจแแ แก แแ แแแคแแฅแ แแ, แแฃ แแ แกแแแแแแ แแกแแแ แแแกแแแแแก แแแแขแคแแ แแ, แกแแแแช แจแแแแซแแแแ แฃแกแแคแ แแฎแแ แแแฃแจแแแ แแแแ แฐแแกแขแแกแแแแก, แแแแแ แแ แแแแ แแ แแคแแแแแ, แแแแแแแฃแ แแ (แแแขแแ แแฅแขแแฃแแแ) แแแแแแแจแแ แแ UI- แแแฏแแขแแแ แแฅแแแแก แแแแแแ. แแแแแก แแแแแขแแแ แขแแฅแกแขแแ แแแแฅแฏแแแแ... แคแแ แแแขแแ แแแ? แ แแแแ แกแแฎแแก แแแขแแ แแฅแขแแฃแแ แแแแแ? แแแ... แแแแแ! แแแแแ! ๐
แจแแฎแแแแ แแแขแแก แฅแแแจ, แกแแแแช แแแแขแแแแแ แจแ แฉแแแคแ แแแแแแแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ - แจแแแแแแ แแแแแแก แแแแฎแแแ แแแแแก แแแขแแ แคแแแกแ แแแซแแแแแแฃแแ Jupyter Notebook-แแก แแแชแแแแ แแ แฉแแแ แแกแแแ แแแแแแแกแขแแแแ แแแ Python แแแแฃแแแแก, แ แแแแ แแชแแ แแฃแแแ, แแแแแ, matplotlib, IPyWidgets แ แแช แกแแจแฃแแแแแแก แแแแชแแแ แแแแแแแแ แงแแแแแคแแ แ แแแแแ แฉแแแแแแแแแ แแ แจแแแแแฎแแ แแก แงแแแแแคแแ แ แกแแแชแแแแฃแ แคแแแแจแ - IPython แแแแขแแแจแ.
แแแแแแแชแแ
- แแ แแแขแแแฃแ แ แแคแ แแแแก แแแแแ
- แซแแ แแแแแ แกแแกแขแแแแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ
- แซแแ แแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแกแขแแแแชแแ แแ แกแแกแขแแแแก แแแงแแแแแ
- JupyterLab-แแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ
- แแแแแชแแแแ แแแแแแ แแแ แแแกแแแแซแแแแแ
- แฒแแแแ แฏแแแ แแกแแคแแแ!
- แแแแแแแก แจแแกแแซแแแแแแแแแแก แแแคแแ แแแแแ
- แแแแฃแแแแแก แขแแกแขแแ แแแ JupyterLab-แจแ
- แฒกแฎแแ แ แ?
แแ แแแขแแแฃแ แ แแคแ แแแแก แแแแแ ^
แแแแแ แแแแแแงแแ แแแแแ แกแแแแฅแแแแ แแแแแ, แ แแแ แแแแแแแแแแแแแก แแแแแ แแแชแแแฃแแ แกแฅแแแแก แแแแฎแแ แชแแแแแแ:
- แแแแแ แแแแแงแแแแ แแ แแแแฃแจแแแ แแแแขแแแแแ แ แกแแแแกแขแ แแแฃแชแแ แแแแ แแแแก แกแแคแฃแซแแแแแ แแแแฃแ แ แแแ. แฉแแแ แแแแแแแงแแแแแ แแ แแแกแขแ แแแฃแชแแแก, แ แแแแแ แแก แแแแแแ แแกแแฎแแแก แแแแแแแแแแแก แแ แแแกแจแ แแแแแแแกแขแแแแ แแแ แแฎแแแแ แงแแแแแแ แกแแญแแ แ แแ แแแ แแแฃแ แฃแแ แฃแแแแแงแแคแแก, แแ แแคแแ แ แแแแแแขแ.
- แแแแแ แแแแแแแขแแ แแแแแขแแแแแ แแแ แขแฃแแแฃแ แ แแแกแแ แแแแขแแแแแ แจแ แแ แแแแชแแ แกแแฎแแแ -
hostfs
แแ แแแแแแกแขแแแแ แแ แแก root แคแแแแฃแ แกแแกแขแแแแจแ. แแก แแแกแแ แจแแกแแซแแแแแแก แแแฎแแแก แคแแแแแแแก แแแแแงแแแแแแก แฐแแกแขแแ แแแชแแแฃแแ แแแ แแฅแขแแ แแแแแ แแแแขแแแแแ แแก แจแแแแแ. แแแ แแแแ, แฉแแแแ แแแแแชแแแแแ แแแแแฃแแแแแแแแ แแฅแแแแ แแแแขแแแแแ แแกแแแ. แแฃ แแแแขแแแแแ แ แฌแแแจแแแแ, แแแแแชแแแแแ แแแ แฉแแแ แฐแแกแขแแ. แแกแแแ, แแก แกแฅแแแ แกแแกแแ แแแแแแ แแแแแ แแแแแชแแแแแแก แแแแแแ แแแแกแแแแก แแแแ แแแแขแแแแแ แก แจแแ แแก แแแแขแแแแแ แแก แแแแแฌแแแแแแก แกแขแแแแแ แขแฃแแ แฅแกแแแฃแ แ แแแฅแแแแแแแแแก แแแแแงแแแแแแก แแแ แแจแ. - แแแแแแแกแขแแแแ แแ Bash, sudo, แกแแญแแ แ แแแแแแแแแแแแ, แแแแแแแขแแ แแ แแแแแแแแคแแแฃแ แแ แแ แกแแกแขแแแแก แแแแฎแแแ แแแแแ
- แแแแแ แแแแแงแแแแ แแแแแแ, แแแแฃแแแแ แแ แจแแแแแแแแแ แแ แแแแแ แแแแแแแแแแฃแแแแแแ แแแแแแแก
- แแแแแ แแแแแงแแแแ แแ แแแแฃแจแแแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ, แจแแชแแแแแ แแแ แแแแแแ, แแแแแแกแขแแแแ แแ แแแคแแ แแแแแแแ.
แแ แกแขแแขแแแจแ แฉแแแ แแแแแฌแงแแแ แแแแขแแแแแ แแก แแแจแแแแแก, แแ แแแแแแฎแแแแแ LXD-แแก แแแกแขแแแแชแแแก แแ แแแแคแแแฃแ แแชแแแก, แแฅแแแ แจแแแแซแแแแ แแแแแแ แแก แงแแแแแคแแ แ แกแฎแแ แกแขแแขแแแจแ - LXD - Linux แแแแขแแแแแ แแก แกแแกแขแแแแแแก แซแแ แแแแแ แแแฎแแกแแแแแแแแแ.
แซแแ แแแแแ แกแแกแขแแแแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ ^
แฉแแแ แแฅแแแแ แแแแขแแแแแ แก แแ แซแแแแแแ, แ แแแแแจแแช แแแแฃแกแขแแแ แกแฃแ แแแก - alpine3
, แแแแขแแแแแ แแก แแแแแขแแคแแแแขแแ แ - jupyterlab
แแ, แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แแแแคแแแฃแ แแชแแแก แแ แแคแแแแแ:
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
แแฅ แแ แแแงแแแแ แแแแคแแแฃแ แแชแแแก แแ แแคแแแก hddroot
แ แแแแแแช แแแแกแแแฆแแ แแแก แแแแขแแแแแ แแก แจแแฅแแแแก root แแแแแงแแคแแ แกแแชแแแแก แแฃแแ แแแแแแ แแแแก แคแแแแแฃแ 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 |
+------------+---------+-------------------+--------------+
แแแแขแแแแแ แแก แจแแฅแแแแกแแก, IP แแแกแแแแ แแ แจแแแแฎแแแแแ แจแแแ แฉแ, แ แแแแแ แฉแแแ แแแแแแแงแแแแ แแแแคแแแฃแ แแชแแแก แแ แแคแแแ default
แ แแแแแแช แแแ แ แแงแ แแแแคแแแฃแ แแ แแแฃแแ แกแขแแขแแแจแ LXD - Linux แแแแขแแแแแ แแก แกแแกแขแแแแแแก แซแแ แแแแแ แแแฎแแกแแแแแแแแแ.
แฉแแแ แจแแแชแแแแ แแ IP แแแกแแแแ แแก แฃแคแ แ แแแกแแแแฎแกแแแ แแแแแก แฅแกแแแแก แแแขแแ แคแแแกแแก แจแแฅแแแแ แแแแขแแแแแ แแก แแแแแแ แแ แแ แ แแแแคแแแฃแ แแชแแแก แแ แแคแแแแก แแแแแแ, แ แแแแ แช แแก แแฎแแ แแ แแก แแแแแแแแ แ แแแแคแแแฃแ แแชแแแจแ. แแฅแแแ แแ แแญแแ แแแแแ แแแแก แแแแแแแแ, แจแแแแซแแแแ แแแแแขแแแแ แแแ.
แฅแกแแแแก แแแขแแ แคแแแกแแก แจแแฅแแแ eth0
แ แแแแแกแแช แฉแแแ แแฃแแแแจแแ แแแ แแแแแแ แแแแแก (แฅแกแแแแก แฎแแแ) lxdbr0
แ แแแแแจแแช แฉแแแ แแแแแแฅแขแแฃแ แแ NAT แฌแแแ แกแขแแขแแแก แแแฎแแแแแ แแ แแแแขแแแแแ แก แแฎแแ แแฅแแแแ แฌแแแแแ แแแขแแ แแแขแแ, แแกแแแ แแแขแแ แคแแแกแก แแแแแญแแแ แกแขแแขแแแฃแ แ IP แแแกแแแแ แแก - 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 |
+------------+---------+------------------+--------------+
แซแแ แแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแกแขแแแแชแแ แแ แกแแกแขแแแแก แแแงแแแแแ ^
แฉแแแแ แแแแขแแแแแ แแก แแแแแแแกแขแ แแ แแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ แจแแแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ:
แแแแแขแ
แแฆแฌแแ แ
Bash
GNU Bourne Again แญแฃแ แแ
แแแจ-แแแกแ แฃแแแแ
แแ แแแ แแแแ แแแแแ แแแกแ แฃแแแแ bash shell-แแกแแแแก
sudo
แแแแชแแ แแแ แแแแฃแ แแแแฎแแแ แแแแแแก แจแแกแแซแแแแแแแ แแแฃแจแแแ แแแแแแ แแ แแ แซแแแแแ root-แแก แกแแฎแแ
shadow
แแแ แแแแกแ แแ แแแแแ แแจแแก แแแ แแแแก แฎแแแกแแฌแงแแแแแก แแแแแแแฅแขแ แฉแ แแแแแแแแ แคแแแแแแแกแ แแ PAM-แแก แแฎแแ แแแญแแ แแ
แชแซแแขแ
แแ แแแก แกแแ แขแงแแแกแ แแ แแฆแแก แจแฃแฅแแก แแ แแแก แแแแแชแแแแแแก แฌแงแแ แแแแ
nano
Pico แ แแแแฅแขแแ แแก แแแแแ แแแฃแแฏแแแแกแแแแแแ
แแแ แแ แแแแกแ, แจแแแแซแแแแ แแแแแแกแขแแแแ แแ แแฎแแ แแแญแแ แ แกแแกแขแแแแก man-pages แจแแแแแแ แแแแแขแแแแก แแแงแแแแแแ - man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
แแแแแ แจแแแฎแแแแ แฉแแแ แแแแ แแแแแงแแแแแฃแ แแ แซแแแแแแแก แแ แแแกแแฆแแแแแก:
lxc
โ แแแ แแแแ LXD แแแแแแขแแแexec
- LXD แแแแแแขแแก แแแแแแ, แ แแแแแแช แแฌแแ แแแแแก แแ แซแแแแแแก แแแแขแแแแแ แจแjupyterlab
- แแแแขแแแแแ แแก ID--
- แกแแแชแแแแฃแ แ แแแกแแฆแแแ, แ แแแแแแช แแแแกแแแฆแแ แแแก, แ แแ แแ แแแฎแแแก แจแแแแแแแ แแแกแแฆแแแแแแก แแแขแแ แแ แแขแแชแแ แแแกแแฆแแแแ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
แแแแกแแแแก, แ แแ แแแแขแแแแแ แจแ แแฎแแแ แแแแฎแแแ แแแแแแแกแแแแก Bash-แแก แแแงแแแแแแแ แแแแ แแ แ แแ แแแฎแแ แฏแแ, แจแแแแแ แแแแแฏแแแจแ แฉแแแ แแแกแจแ แแแกแแแแซแแแ แกแแกแขแแแแแแ แแแแแแแแแ แแแ แแแ แกแแแแแก แคแแแแแแก. แแก แกแแจแฃแแแแแแก แแแแชแแแ แแแแแแแแแแ Bash แแแแขแแแแแ แจแ แแแขแแ แแฅแขแแฃแแแ. แฉแแแ แแแกแแแแซแแแ แกแแกแขแแแ แแ แแก Manjaro Linux แแ แคแแแแแแ แแแแแ แแแฃแแแ /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
แแ แแแชแแแจแ, แแกแแแ แจแแกแแคแแ แแกแแ Alpine Linux-แแกแแแแก แแ แแ แแฌแแแแก แแ แแขแแแฃแ แแ แแแแแแแแก, แแแแ แแ แจแแแซแแแแ แแฅแแแแแ แแแแกแฎแแแแแแฃแแ แแแแแฌแแแแแ แแ แแแแแฃแแแแแแแแ แฃแแแ แแแแ แแแแแ, แแ แแก แแฃ แแ แ แจแแชแแแแ Bash-แแก แแแแขแแแแแ แจแ แแแจแแแแแกแแก.
แแแแแแแแ แแ แฉแแแฉแฎแแก แคแแแแแแ แแแแขแแแแแ แจแ. แฒแแกแแฆแแแ --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
แฃแแแ แแ แกแแแฃแแ root แแแแฎแแแ แแแแแกแแแแก แแแแแแแแ แแ แกแแแแแก แคแแแแแแ, แ แแแแแแแช แแฎแแแฎแแ แแแแแแแ แแแฃแแแ แแแแขแแแแแ แจแ แกแแฎแแแก แแแ แแฅแขแแ แแแจแ:
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 แแงแแแแแก แกแแกแขแแแแก แแแ แกแก แแแแฎแแแ แแแแแแแกแแแแก /bin/sh
, แฉแแแ แจแแแชแแแแ root
แแแแฎแแแ แแแแแ Bash-แจแ:
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
แฃแแแแแแขแแ แแแก แแแ แแแแขแ แแก แฎแแแก แแแแคแแแฃแ แแชแแแก แคแแแแจแ /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
JupyterLab-แแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ ^
แแฃแแแขแแ แแก แแแแแ แแขแแ แแ แแ แแก แแแแแแแก แแแแแแแชแแ, แแแแขแแ แฏแแ แฃแแแ แแแแแงแแแแ แแก แแแ แฏแแแแแ. แแกแแแ, แแฃแแแขแแ แแก แแแแแ แแขแแ แแ แฉแแแ แแแแแแแกแขแแแแ แแแ Python แแแแแขแแก แแแแแฏแแ แแก แแแแแงแแแแแแ 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-แแก แแแแแแแแ แแแ แแ แแ แแก แแแกแฃแฎแแกแแแแแแแ:
แแฃแแชแ, แฉแแแ แแแแแแแแ แแแแแแชแแแจแ แแแ แ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ แแ แแแแแแแกแแ แแแ แแแแขแแแแแ แจแ แแกแ, แ แแ แแแกแแแ แแฎแแ แแก แแแคแแ แแแแแแแแ, แ แแแแแแแช แกแแญแแ แแแแแ แแ แแแแแแงแแแแแแ NodeJS-แก, แแ แจแแฃแซแแแแ แแแแแช แแแแแแ แแ แแแแแชแแแแแ แแแกแแแ, แแแ แแ แแแแกแ, แ แแกแแช แฉแแแ แแฎแกแแแ แแแแขแแแแแ แแก แจแแแแแ. แแแแฆแแ แแฅแแแแ แแแ แแแ แแแแฃแแแแขแแแ แแแกแแแแซแแแแ /home
แแแแขแแแแแ แแแแ แแ แแชแแกแแแ แแแแแแแแ แกแแแแ แแฃแแแ, แ แแ แฌแแ แแแขแแแฃแแ แแงแแก แแ แแฃ แฌแแ แแแขแแแแก แแแแฆแฌแแแก, แแแจแแ แแฅแแแ แฃแแแ แแฅแแแแแ แแ แแแแแแแแแแ แแแกแแแแซแแ แกแแกแขแแแแจแ แแ แกแแแฃแ แคแแแแแแแ, แ แแแแแ แฉแแแ แแแแขแแแแแ แก แแแขแแ แแแ แแ แแแ แแแแแแแแ แแแฃแแ แ แแแแแ. แแ แแแคแแ แแแชแแแก แกแแคแฃแซแแแแแ, แจแแแแซแแแแ แจแแแคแแกแแ แแแคแแ แแแแแแแแก แฉแแ แแแแก แ แแกแแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ.
แจแแฅแแแแแ IPython แแแฃแแแฃแฅแแแ (แแแแ แแแแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ) แแฎแแ แจแแแฅแแแแแ แแแแฎแแแ แแแแแก แแแแแแ แแแ แแฅแขแแ แแแจแ - /home/jupyter
, แแแแ แแ แฉแแแแ แแแแแแแแ แแแแแชแแแแแแก (แแแแแแ แแแแก) แแแงแแคแ แฐแแกแขแกแ แแ แแแแขแแแแแ แก แจแแ แแก, แแแแขแแ แแแแ แฃแแแแ แแแแกแแแจแ แแ แแแแฉแแ แแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ แชแฎแแแ แแแแแแจแแก แจแแกแ แฃแแแแแ - CTRL+C
แแ แแแกแฃแฎแแแก y
แแฎแแแแแก แกแแคแฃแซแแแแแ. แจแแแแแ แจแแฌแงแแแขแ แแแแฎแแแ แแแแแก แแแขแแ แแฅแขแแฃแแ แกแแกแแ jupyter
แชแฎแแแ แแแแแแจแแก แแแกแ แฃแแแแ CTRL+D
.
แแแแแชแแแแ แแแแแแ แแแ แแแกแแแแซแแแแแ ^
แฐแแกแขแแแ แแแแแชแแแแแแก แแแกแแแแแ แแแแแ, แแฅแแแ แฃแแแ แจแแฅแแแแ แแแฌแงแแแแแแแ แแแแขแแแแแ แจแ, แ แแแแแแช แแแแก แกแแจแฃแแแแแแก แแแแชแแแ แแ แแแแกแแแแแก แแฌแแ แแแแ แจแแแแแแ แแ แซแแแแแ, แกแแแแช แแแแแกแแแฆแแ แแแ แจแแแแแ แแแแแแจแแแก:
lxc config device add
โ แแ แซแแแแแ แแแแขแแแก แแแฌแงแแแแแแแแก แแแแคแแแฃแ แแชแแแกjupyter
โ แแแแขแแแแแ แแก ID, แ แแแแแกแแช แแแแขแแแ แแแแคแแแฃแ แแชแแhostfs
- แแแฌแงแแแแแแแแก ID. แแฅแแแ แจแแแแซแแแแ แแแแงแแแแ แแแแแกแแแแ แ แกแแฎแแแ.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 แแ แจแแฅแแแแแ แแฅแแแแ แแแ แแแแ แแแแขแแแ แแแแ แแแ แฆแแแแแแ แแแญแแ แแ, แ แแแแ แช แแแฉแแแแแแแ แฅแแแแแ แแแชแแแฃแ แกแฃแ แแแแ:
แจแแแแแ, แแแแ แแแก แแแแจแ แจแแแงแแแแแ แแแแแแแก แแแแ, แ แแแแแแช แแฉแแแแแแก แแแแกแแแแก Hello World!
. แจแแกแแแแก แแแกแ แฃแแแแแก แจแแแแแ แแแแญแแ แแ CTRL+ENTER
แแ แฆแแแแแ "แแแแแจแ" แแแกแขแ แฃแแแแขแแ แแแแแแแ แแแแ, แ แแแ JupyterLab-แแ แแแแแแแแก แแก:
แแ แแขแแแแ, แแแแฅแแแก แงแแแแแคแแ แ แแแแ แแ แแก แแแแแกแแงแแแแแแแ, แแแแ แแ แฃแแแขแแ แแกแ แแฅแแแแ, แแฃ แแ แแแแแแแกแขแแแแ แแแ Python-แแก แแแแแขแแแแ แแแแฃแแแแก (แกแ แฃแแคแแกแแแแ แแแแแแแชแแแแก), แ แแแแแแกแแช แจแแฃแซแแแแ แแแแจแแแแแแแแแ แแแแคแแ แแแแแ Python-แแก แกแขแแแแแ แขแฃแแ แจแแกแแซแแแแแแแแแ. แแฃแแแขแแ แแก แแแแแ แแขแแ แแแแแแขแแ แแแแแแ แซแแแแ :)
PS แกแแแแขแแ แแกแ แแก แแ แแก, แ แแ แซแแแแ แแแแฎแแ แชแแแแแแ แแฃแแแขแแ แ แแแแแก แกแแฎแแแแ แแฃแแแขแแ แแก แ แแแฃแแ แแ แแแฅแ แ แแ แแแ แแแแแฃแ แแ แแ แกแแแแแก แแฃแแแขแแ แแก แแแแแ แแขแแ แแ. แซแแแ แแแ แกแแแแ แแแแแกแแกแแแแแแ แแแฐแงแแแแ แแแฃแแก, แ แแแแแจแแช แแแแแแขแแ แกแฃแคแแฅแกแ แแแกแแแแ แแจแ/tree
, แฎแแแ แแฎแแ แแแ แกแแแแ แแแแแกแแแ แฎแแแแ แกแฃแคแแฅแกแแ /lab
, แแแแ แแ แแก แแ แฃแแแ แแงแแก แแแแแแแแฃแแ:
- แแฃแแแขแแ แแก แแแฃแแแฃแฅแ - http://10.0.5.5:8888/tree
- แแฃแแแขแแ แแก แแแแแ แแขแแ แแ - http://10.0.5.5:8888/lab
แแแแแแแก แจแแกแแซแแแแแแแแแแก แแแคแแ แแแแแ ^
แแ แแแแงแแคแแแแแแจแ แฉแแแ แแแแแแแกแขแแแแ แแแ Python แแแแก แแกแแ แแซแแแแ แแแแฃแแแแก, แ แแแแ แแชแแ แแฃแแแ, แแแแแ, matplotlib, IPyWidgets แ แแแแแก แจแแแแแแแ แแแขแแแ แแ แแแฃแแแ แแแแขแแแแแจแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ.
แฉแแแแแแแแแ Python แแแแฃแแแแแก แแแงแแแแแแแแ แแแแแขแแก แแแแแฏแแ แแก แแแจแแแแแแ pip
แฉแแแ แฏแแ แฃแแแ แแแแแแฌแงแแแขแแ แกแแกแขแแแแก แแแแแแแแแแฃแแแแแแ Alpine Linux-แจแ:
g++
โ แกแแญแแ แแ แแแแฃแแแแแก แจแแแแแแแกแแแแก, แ แแแแแ แแแแแแ แแ แแแแแแแ แแแแแแ แแแแแ แแแแ C + + แแ แแแฃแแแแจแแ แแแ Python-แก แแแจแแแแแก แแ แแก, แ แแแแ แช แแ แแแแแ แแแแฃแแแแfreetype-dev
- แแแแแแแแแแฃแแแแ แแแแแแแก แแแแฃแแแ matplotlib
แแแแแแแแแแฃแแแแแแแก แแแงแแแแแ:
lxc exec jupyterlab -- apk add g++ freetype-dev
แแ แแก แแ แแ แแ แแแแแแ: Alpine Linux แแแกแขแ แแแฃแชแแแก แแแแแแแแแแ แแแแแแแ แแแแแจแ, NumPy-แแก แแฎแแแ แแแ แกแแแก แจแแแแแแ แจแแฃแซแแแแแแ แแฅแแแแ; แแแแแฉแแแแแ แจแแแแแแแก แจแแชแแแแ, แ แแแแแก แแแแแแ แแแแช แแแ แแแแแฎแแ แฎแ:
ERROR: แแแ แแแแจแแแ แแแ แแแแแ numpy-แกแแแแก, แ แแแแแแแช แแงแแแแแแ PEP 517 แแ แแ แจแแแซแแแแ แแแ แแแแแ แแแแแแขแแแแแก
แแแแขแแ, แฉแแแ แแแแแแแกแขแแแแ แแแ แแ แแแแฃแแก, แ แแแแ แช แกแแกแขแแแแก แแแแแขแก, แ แแแแแแช แแแ แชแแแแแก แฃแแแ แจแแแแแแแ แแแ แกแแแก, แแแแ แแ แชแแขแ แฃแคแ แ แซแแแแ แแแแ แ แแแแแแแ แฎแแแแแกแแฌแแแแแแ แกแแแขแแ:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
แจแแแแแแ, แแแแแแกแขแแแแ แแ Python แแแแฃแแแแ แแแแแขแแก แแแแแฏแแ แแก แแแจแแแแแแ 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 แแแแแแแขแก แแแแ แแแ, แ แแแแแแช แแแขแแ แแฅแขแแฃแแแ แฃแ แแแแ แแฅแแแแแแก แฌแงแแ แแก แแแแแแ แแ แแกแแแ matplotlib แแฉแแแแแแก แแแแแก แจแแแแแก แกแฃแ แแแแก แกแแฎแแ แคแฃแแฅแชแแแก แแ แแคแแแแก แกแแฎแแ:
แแแแ แ แแแแแแแแ IPyWidgets แจแแแแซแแแแ แแแแแแ แแก แแแแแแแแแแแจแ แแฅ
แฒกแฎแแ แ แ? ^
แแแ แแแ, แแฃ แแแ แฉแแ แแ แแแแฆแฌแแแ แกแขแแขแแแก แแแแแแแ. แแ แแแแแ แแฎ แแ แแแแแแแฅแแแงแแ แแแ แกแแ แแแขแ แกแขแแขแแแก แแแแแก, แ แแแแแแช แแแแแกแขแแแแ แแแแแแ แแฃแแแขแแ แแก แแแแแ แแขแแ แแ แแฃแจแแแแก แฌแแฎแแแแกแแแแกแแแแก "แแ แแ แแแฌแแแแฃแแแแแ" :) แแแแ แแ แแฅแแแ แแแแแแ แจแแแแซแแแแ แแแแก แแแแแแแแ, แ แแแแแ แแฅแแแ แฃแแแ แแชแแ แ แแแแ , แแ แซแแแแแแแ แจแแแแ แแแแ แแ แ Bash แกแแ แแแขแจแ :)
แฒแกแแแ แจแแแแซแแแแ:
- แแแแงแแแแ แแแแขแแแแแ แแก แฅแกแแแแก แกแแฎแแแ IP แแแกแแแแ แแแก แแแชแแแแ, แแแ แขแแแ แฉแแฌแแ แแ
/etc/hosts
แแ แฉแแฌแแ แแ แแแกแแแแ แแ แแ แแฃแแแ แจแ http://jupyter.local:8888 - แแแแแแจแ แแแแขแแแแแ แแก แ แแกแฃแ แกแแก แแแแแขแแ, แแแแกแแแแแก แฌแแแแแแฎแแ แแแแ แซแแ แแแแแ 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