āĻāĻĒāύāĻžāĻā§ āĻāĻŋ āĻāĻāύ⧠āϞāĻŋāύāĻžāĻā§āϏ⧠āĻā§āĻĄ āĻŦāĻž āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āύāĻŋāϝāĻŧā§ āĻĒāϰā§āĻā§āώāĻž-āύāĻŋāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻā§ āĻ āύā§āϤāϰā§āύāĻŋāĻšāĻŋāϤ āϏāĻŋāϏā§āĻā§āĻŽ āύāĻŋāϝāĻŧā§ āĻāĻŋāύā§āϤāĻž āύāĻž āĻāϰ⧠āĻāĻŦāĻ āϰā§āĻ āϏā§āĻŦāĻŋāϧāĻžāϰ āϏāĻžāĻĨā§ āĻāĻžāϞāĻžāύā§āϰ āĻāĻĨāĻž āĻā§āĻĄā§ āϤā§āϰā§āĻāĻŋāϰ āĻā§āώā§āϤā§āϰ⧠āϏāĻŦāĻāĻŋāĻā§ āĻā§āĻā§ āĻĢā§āϞāĻž?
āĻāĻŋāύā§āϤ⧠āĻāĻ āϏāϤā§āϝāĻāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§ āĻŦāϞāĻž āϝāĻžāĻ āϝ⧠āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāύ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻĒā§āϰ⧠āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĒāϰā§āĻā§āώāĻž āĻŦāĻž āĻāĻžāϞāĻžāύ⧠āĻĻāϰāĻāĻžāϰ? āĻāĻāĻļ āĻŦāĻž āĻāĻ āĻšāĻžāĻāĻžāϰ?
āĻāĻāĻāĻŋ āĻšāĻžāĻāĻĒāĻžāϰāĻāĻžāĻāĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŽā§āĻļāĻŋāύāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§, āĻāĻ āĻāĻžāϤā§āϝāĻŧ āϏāĻŽāϏā§āϝāĻžāĻā§āϞāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻšāĻŦā§, āϤāĻŦā§ āĻā§ āĻŽā§āϞā§āϝā§? āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāϞāĻĒāĻžāĻāύ āϞāĻŋāύāĻžāĻā§āϏ āĻĄāĻŋāϏā§āĻā§āϰāĻŋāĻŦāĻŋāĻāĻļāύā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāϞāĻāĻā§āϏāĻĄāĻŋ-āϤ⧠āĻāĻāĻāĻŋ āϧāĻžāϰāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠7.60MB RAM, āĻāĻŦāĻ āϝā§āĻāĻžāύ⧠āϰā§āĻ āĻĒāĻžāϰā§āĻāĻŋāĻļāύ āϏā§āĻāĻžāϰā§āĻāĻāĻĒā§āϰ āĻĒāϰ⧠āĻĻāĻāϞ āĻāϰ⧠9.5MB! āĻāĻĒāύāĻŋ āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻĒāĻāύā§āĻĻ āĻāϰā§āύ, āĻāϞāύ āĻŽāĻžāϏā§āĻ? āĻāĻŽāĻŋ āĻā§āĻ āĻāĻāĻ āϏā§āĻĒāĻžāϰāĻŋāĻļ LXD āĻāϰ āĻŽā§āϞāĻŋāĻ āĻā§āώāĻŽāϤāĻž - āϞāĻŋāύāĻžāĻā§āϏ⧠āĻāĻāĻāĻŋ āϧāĻžāϰāĻ āϏāĻŋāϏā§āĻā§āĻŽ
āĻāϞāĻāĻā§āϏāĻĄāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋ āĻā§ āϤāĻž āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻšāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āĻĒāϰā§, āĻāϏā§āύ āĻāϰāĻ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻ āĻāĻŦāĻ āĻāĻžāĻŦāĻŋ, āĻāĻŽāύ āĻāĻāĻāĻŋ āĻšāĻžāϰā§āĻā§āϏā§āĻāĻžāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻĨāĻžāĻāϞ⧠āĻā§ āĻšāϤ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻšā§āϏā§āĻā§āϰ āĻāύā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻā§āĻĄ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ, āĻā§āϰāĻžāĻĢ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ (āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻāĻāĻžāĻŦā§) āĻāĻĒāύāĻžāϰ āĻā§āĻĄā§āϰ āϏāĻžāĻĨā§ UI- āĻāĻāĻā§āĻāĻā§āϞāĻŋ āϞāĻŋāĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻŦā§āϞā§āϝāĻžāĻāĻā§āϝāĻžāĻ... āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āϏāĻš āĻĒāĻžāĻ ā§āϝ āϏāĻš āĻā§āĻĄā§āϰ āĻĒāϰāĻŋāĻĒā§āϰāĻ? āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻ āĻŦā§āϞāĻ āĻāĻŋāĻā§ āϧāϰāύā§āϰ? āĻŦāĻžāĻš... āĻāĻŽāĻŋ āĻāĻāĻž āĻāĻžāĻ! āĻāĻžāĻ! đ
āĻŦāĻŋāĻĄāĻŧāĻžāϞā§āϰ āύā§āĻā§ āĻĻā§āĻā§āύ āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻĒāĻžāϤā§āϰ⧠āϞāĻā§āĻ āĻāϰāĻŦ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ - āĻĒā§āϰāĻžāύ⧠āĻā§āĻĒāĻŋāĻāĻžāϰ āύā§āĻāĻŦā§āĻā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒā§āϰāĻāύā§āĻŽā§āϰ āĻāĻāĻāĻžāϰ āĻāύā§āĻāĻžāϰāĻĢā§āϏ, āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞāĻ āĻāύāϏā§āĻāϞ āĻāϰāĻŦ āϝā§āĻŽāύ āύāĻŽā§āϰ, āĻĒāĻžāύā§āĻĄāĻžāϏ, āĻŽā§āϝāĻžāĻāĻĒā§āϞā§āϞā§āĻŦ, IPyWidgets āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻĒāϰ⧠āϤāĻžāϞāĻŋāĻāĻžāĻā§āĻā§āϤ āϏāĻŽāϏā§āϤ āĻāĻŋāĻā§ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§ - āĻāĻāĻāĻŋ āĻāĻāĻĒāĻŋāĻĨāύ āϞā§āϝāĻžāĻĒāĻāĻĒāĨ¤

āύā§āϝāĻžāĻāĻŋāĻā§āĻļāύ
- āĻ āϰāĻŦāĻŋāĻāĻžāϞ āĻā§āĻ āĻ āĻĢ āĻĒā§āϞā§āϝāĻžāύ
- āĻŽā§āϞāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻāύāϏā§āĻāϞā§āĻļāύ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ
- āĻŽā§āϞāĻŋāĻ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽ āϏā§āĻ āĻāĻĒ āĻāϰāĻž
- JupyterLab āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāĻā§āĻā§
- āĻšā§āϏā§āĻā§āϰ āϏāĻžāĻĨā§ āĻĄā§āĻāĻž āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž
- āĻāĻšā§ āĻŦāĻŋāĻļā§āĻŦ!
- āĻĒāĻžāĻāĻĨāύā§āϰ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāĻž
- JupyterLab āĻ āĻā§āϏā§āĻāĻŋāĻ āĻŽāĻĄāĻŋāĻāϞ
- āĻāϰ āĻāĻŋ?
āĻ āϰāĻŦāĻŋāĻāĻžāϞ āĻā§āĻ āĻ āĻĢ āĻĒā§āϞā§āϝāĻžāύ ^

āĻāĻĒāϰā§āϰ āϏā§āĻāĻŋāĻŽāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āϏāĻšāĻ āĻāϰāϤ⧠āĻāĻāĻāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āĻāϰā§āĻŽ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻžāϰ āϰā§āĻĒāϰā§āĻāĻž āĻĻā§āĻāϝāĻŧāĻž āϝāĻžāĻ:
- āĻāϰ āĻĄāĻŋāϏā§āĻā§āϰāĻŋāĻŦāĻŋāĻāĻļāύ āĻāĻŋāĻā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻāĻāĻŋ āϧāĻžāϰāĻ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāĻžāϞ⧠āĻāϰāĻž āϝāĻžāĻ āĻāϞāĻĒāĻžāĻāύ āϞāĻŋāύāĻžāĻā§āϏ. āĻāĻŽāϰāĻž āĻāĻ āĻĄāĻŋāϏā§āĻā§āϰāĻŋāĻŦāĻŋāĻāĻļāύāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āύā§āϝā§āύāϤāĻŽāϤāĻžāϰ āϞāĻā§āώā§āϝ⧠āĻāĻŦāĻ āĻāĻāĻŋāϤ⧠āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻŦ, āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻŋāĻā§āĻ āύāϝāĻŧāĨ¤
- āĻāϏā§āύ āĻĒāĻžāϤā§āϰ⧠āĻāĻāĻāĻŋ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĄāĻŋāϏā§āĻ āϝā§āĻ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻŋāϰ āĻāĻāĻāĻŋ āύāĻžāĻŽ āĻĻāĻŋāύ -
hostfsāĻāĻŦāĻ āĻāĻāĻŋāĻā§ āϰā§āĻ āĻĢāĻžāĻāϞ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻŽāĻžāĻāύā§āĻ āĻāϰā§āύāĨ¤ āĻāĻ āĻĄāĻŋāϏā§āĻāĻāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻŋ āĻĒā§āϰāĻĻāϤā§āϤ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻĨā§āĻā§ āĻšā§āϏā§āĻā§ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻāĻŽāĻžāĻĻā§āϰ āĻĄā§āĻāĻž āϧāĻžāϰāĻ āĻĨā§āĻā§ āϏā§āĻŦāĻžāϧā§āύ āĻšāĻŦā§āĨ¤ āϧāĻžāϰāĻāĻāĻŋ āĻŽā§āĻā§ āĻĢā§āϞāĻž āĻšāϞā§, āĻĄā§āĻāĻž āĻšā§āϏā§āĻā§ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻ āϏā§āĻāĻŋāĻŽāĻāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŦāĻŋāϤāϰāĻŖā§āϰ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻŽā§āĻāĻžāύāĻŋāĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āĻ āύā§āĻ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻ āĻĄā§āĻāĻž āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĻāϰāĻāĻžāϰā§āĨ¤ - āĻāϏā§āύ Bash, sudo, āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻŋ, āĻāĻāĻāĻŋ āϏāĻŋāϏā§āĻā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝā§āĻ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻŋ
- āĻāϏā§āύ āĻĒāĻžāĻāĻĨāύ, āĻŽāĻĄāĻŋāĻāϞ āĻāύāϏā§āĻāϞ āĻāϰāĻŋ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ āĻŦāĻžāĻāύāĻžāϰāĻŋ āύāĻŋāϰā§āĻāϰāϤāĻž āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻŋ
- āĻāϰ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāĻžāϞ⧠āĻāϰāĻž āϝāĻžāĻ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ, āĻā§āĻšāĻžāϰāĻž āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰā§āύ, āĻāĻāĻŋāϰ āĻāύā§āϝ āĻāĻā§āϏāĻā§āύāĻļāύ āĻāύāϏā§āĻāϞ āĻāϰā§āύāĨ¤
āĻāĻ āύāĻŋāĻŦāύā§āϧā§, āĻāĻŽāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āϏāĻžāĻĨā§ āĻļā§āϰ⧠āĻāϰāĻŦ, āĻāĻŽāϰāĻž LXD āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻŦ āύāĻž, āĻāĻĒāύāĻŋ āĻ āύā§āϝ āύāĻŋāĻŦāύā§āϧ⧠āĻāĻ āϏāĻŽāϏā§āϤ āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ - LXD-āĻāϰ āĻŽā§āϞāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ - āϞāĻŋāύāĻžāĻā§āϏ āĻāύā§āĻā§āĻāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽ.
āĻŽā§āϞāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻāύāϏā§āĻāϞā§āĻļāύ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ ^
āĻāĻŽāϰāĻž āĻāĻŽāĻžāύā§āĻĄ āϏāĻš āĻāĻāĻāĻŋ āϧāĻžāϰāĻ āϤā§āϰāĻŋ āĻāϰāĻŋ āϝāĻžāϤ⧠āĻāĻŽāϰāĻž āĻāĻŋāϤā§āϰāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻŋ - 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āĻāĻāĻŋ āĻāĻŽāĻžāĻā§ āĻāĻāĻāĻĄāĻŋāĻĄāĻŋ āĻĄāĻŋāϏā§āĻā§āϰ āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āϏā§āϝā§āĻ āĻĻā§āϝāĻŧ, āĻāϏāĻāϏāĻĄāĻŋ āĻĄāĻŋāϏā§āĻā§āϰ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§, āϝāĻž āĻāĻŽāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻĒāϞāĻŦā§āϧ āϰāϝāĻŧā§āĻā§ đ āϝāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒā§āϰā§āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ 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-āĻāϰ āĻŽā§āϞāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ - āϞāĻŋāύāĻžāĻā§āϏ āĻāύā§āĻā§āĻāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽ.
āĻŦāϰā§āϤāĻŽāĻžāύ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āĻŽāϤ⧠āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒā§āϰā§āĻĢāĻžāĻāϞ āϞā§āĻā§āϞ⧠āύāϝāĻŧ, āĻāύāĻā§āĻāύāĻžāϰ āϞā§āĻā§āϞ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āϤā§āϰāĻŋ āĻāϰ⧠āĻāĻŽāϰāĻž āĻāĻ āĻāĻāĻĒāĻŋ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏāĻāĻŋāĻā§ āĻāϰāĻ āϏā§āĻŽāϰāĻŖā§āϝāĻŧ āĻāϰ⧠āϤā§āϞāĻŦāĨ¤ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāĻā§āĻā§ 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 |
+------------+---------+------------------+--------------+āĻŽā§āϞāĻŋāĻ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽ āϏā§āĻ āĻāĻĒ āĻāϰāĻž ^
āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āĻā§āĻāύāĻžāϰ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤā§, āĻāĻĒāύāĻžāĻā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§:
āĻĒā§āϝāĻžāĻā§āĻ
āĻŦāĻŋāĻŦāϰāĻŖ
āϏāĻā§āϰ⧠āĻāĻāĻžāϤ
āĻāĻŋāĻāύāĻāĻ āĻŦā§āϰā§āύ āĻāĻŦāĻžāϰ āĻļā§āϞ
bash-āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž
āĻŦā§āϝāĻžāĻļ āĻļā§āϞā§āϰ āĻāύā§āϝ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āĻŦāϞ āϏāĻŽāĻžāĻĒā§āϤāĻŋ
āĻāĻŦā§āύā§āĻā§
āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϰā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻŋāĻā§ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§āϰ āĻā§āώāĻŽāϤāĻž āĻĻāĻŋāύ
āĻāĻžāϝāĻŧāĻž
āĻļā§āϝāĻžāĻĄā§ āĻĢāĻžāĻāϞ āĻāĻŦāĻ āĻĒāĻŋāĻāĻāĻŽ-āĻāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āϏāĻš āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŦāĻ āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āĻā§āϞ āϏā§āϝā§āĻ
tzdata
āĻāĻžāĻāĻŽ āĻā§āύ āĻāĻŦāĻ āĻĄā§āϞāĻžāĻāĻ āϏā§āĻāĻŋāĻ āĻāĻžāĻāĻŽ āĻĄā§āĻāĻžāϰ āĻā§āϏ
āύā§āϝāĻžāύā§
āĻŦāϰā§āϧāĻŋāϤāĻāϰāĻŖ āϏāĻš āĻĒāĻŋāĻā§ āϏāĻŽā§āĻĒāĻžāĻĻāĻ āĻā§āϞā§āύ
āĻ
āϤāĻŋāϰāĻŋāĻā§āϤāĻāĻžāĻŦā§, āĻāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒā§āϝāĻžāĻā§āĻāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰ⧠āϏāĻŋāϏā§āĻā§āĻŽ āĻŽā§āϝāĻžāύ-āĻĒā§āώā§āĻ āĻžāĻā§āϞāĻŋāϤ⧠āϏāĻŽāϰā§āĻĨāύ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ - man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nanoāĻāϏā§āύ āĻāĻŽāϰāĻž āϝ⧠āĻāĻŽāĻžāύā§āĻĄ āĻāĻŦāĻ āĻā§āĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋ āϤāĻž āĻĻā§āĻāĻŋ:
lxc- āĻāϞāĻāĻā§āϏāĻĄāĻŋ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĻā§ āĻāϞ āĻāϰā§āύexec- LXD āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĒāĻĻā§āϧāϤāĻŋ āϝāĻž āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāϝāĻŧjupyterlab- āĻāύā§āĻā§āĻāύāĻžāϰ āĻāĻāĻĄāĻŋ--- āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ āĻā§ āϝāĻž āĻāϰāĻ āĻā§āĻā§āϞāĻŋāĻā§ āĻā§ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻžāĻā§āϝāĻž āύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§ā§ˇlxcāĻāĻŦāĻ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŽāϤ⧠āĻŦāĻžāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻāĻāĻŋ āĻĒāĻžāϏ āĻāϰā§āύapkâ āĻāϞāĻĒāĻžāĻāύ āϞāĻŋāύāĻžāĻā§āϏ āĻĄāĻŋāϏā§āĻā§āϰāĻŋāĻŦāĻŋāĻāĻļāύ āĻĒā§āϝāĻžāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ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 āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϞāĻžāĻāύāĻāĻŋāĻā§ āĻŽāύā§āϤāĻŦā§āϝ āĻāϰ⧠āύāĻž /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āϝā§āĻšā§āϤ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāύ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻāĻŦāĻ āĻāύā§āώā§āĻ āĻžāύāĻŋāĻāĻāĻžāĻŦā§ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ āĻĒā§āϝāĻžāĻā§āĻā§āϰ āϏāĻžāĻĨā§ āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧ āύāĻž, āϤāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāϰ āĻāύā§āϝ 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 āĻāĻŦāĻ āϝ⧠āĻĒā§āώā§āĻ āĻžāĻāĻŋ āĻā§āϞ⧠āϏā§āĻāĻžāύ⧠āĻāύā§āĻāĻžāϰ āĻāϰā§āύ āĻā§āĻā§āύ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āϝāĻž āĻāĻĒāύāĻŋ āĻāύāϏā§āϞ⧠āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤ āĻāĻĒāĻŋ āĻāϰ⧠āĻĒā§āĻāĻā§ āĻĒā§āϏā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻā§āϞāĻŋāĻ āĻāϰā§āύ āϞāĻāĻāύ. āϞāĻ āĻāύ āĻāϰāĻžāϰ āĻĒāϰā§, āύā§āĻā§āϰ āĻāĻŋāϤā§āϰ⧠āĻĻā§āĻāĻžāύ⧠āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§āϰ āĻāĻā§āϏāĻā§āύāĻļāύ āĻŽā§āύā§āϤ⧠āϝāĻžāύ, āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāĻā§ āĻāĻā§āϏāĻā§āύāĻļāύ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϤā§āϤā§āϝāĻŧ āĻĒāĻā§āώā§āϰ āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻā§āϏāĻā§āύāĻļāύ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻā§āĻāĻāĻŋ āύāĻŋāϤ⧠āĻŦāϞāĻž āĻšāĻŦā§ āϝāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāύā§āĻĄ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ āĻāύā§āύāϝāĻŧāύ āĻĻāĻžāϝāĻŧā§ āύāϝāĻŧ:

āϝāĻžāĻāĻšā§āĻ, āĻāĻŽāϰāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāϤā§āϰ⧠āϰāĻžāĻā§āύ āϝāĻžāϤ⧠NodeJS-āĻāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽāύ āϤā§āϤā§āϝāĻŧ āĻĒāĻā§āώā§āϰ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋ āĻ
āύā§āϤāϤ āĻĄāĻŋāϏā§āĻā§āϰ āĻĄā§āĻāĻž āĻā§āϰāĻŋ āĻāϰāϤ⧠āύāĻž āĻĒāĻžāϰ⧠āϝāĻž āĻāĻŽāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻā§āϞāĻŋāĨ¤ āĻšā§āϏā§āĻā§ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āύāĻĨāĻŋāϤ⧠āϝāĻžāύ /home āĻāύā§āĻā§āĻāύāĻžāϰ āĻĨā§āĻā§ āĻĒā§āϰāϏā§āϏāĻā§āϞāĻŋ āϏāĻĢāϞ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻāĻŽ, āĻāĻŦāĻ āϝāĻĻāĻŋ āϏā§āĻā§āϞāĻŋ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻšā§āϏā§āĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤ⧠āĻāĻĒāύāĻžāϰ āĻŦāĻŋāĻļā§āώāĻžāϧāĻŋāĻāĻžāϰ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§, āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻāĻžāϞāĻžāĻ āϏā§āĻŦāĻŋāϧāĻžāĻŦāĻŋāĻšā§āύ āĻŽā§āĻĄ. āĻāĻ āϤāĻĨā§āϝā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰā§, āĻāĻĒāύāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻžāϰ āĻā§āĻāĻāĻŋ āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ.
āĻāĻāĻĒāĻŋāĻĨāύ āύā§āĻāĻŦā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ (āĻĒā§āώā§āĻ āĻž āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ) āĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻšā§āĻŽ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšāĻŦā§ - /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 āĻ
āύā§āĻŽāϤāĻŋ āĻ
āĻŦāĻļā§āϝāĻ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āϏā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤ āϝāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ⧠āĻāĻāĻāĻŋ āĻāĻāĻāĻāĻĄāĻŋ āϏāĻŽāĻžāύ SubUID + UID, āĻ
āϧā§āϝāĻžāϝāĻŧ āĻĻā§āĻā§āύ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āϧāĻžāϰāĻ āĻŦāĻŋāĻļā§āώāĻžāϧāĻŋāĻāĻžāϰ āύāĻŋāĻŦāύā§āϧ⧠LXD-āĻāϰ āĻŽā§āϞāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ - āϞāĻŋāύāĻžāĻā§āϏ āĻāύā§āĻā§āĻāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽ.
āĻšā§āϏā§āĻā§ āĻ
āύā§āĻŽāϤāĻŋ āϏā§āĻ āĻāϰā§āύ, āϝā§āĻāĻžāύ⧠āĻŽāĻžāϞāĻŋāĻ āĻāύāĻā§āĻāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻšāĻŦā§āύ 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 āĻŦāĻž āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦāĻā§ āĻāĻāĻŋ āĻāϰāϤ⧠āĻļā§āϰā§āώ⧠āĻā§āϞāĻŦāĻžāϰ⧠"āĻĒā§āϞā§" āĻŦā§āϤāĻžāĻŽāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:

āĻāĻ āĻŽā§āĻšā§āϰā§āϤā§, āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŦāĻāĻŋāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤ, āϤāĻŦā§ āĻāĻāĻŋ āĻ āϰā§āĻāĻŋāĻāϰ āĻšāĻŦā§ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞ (āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ) āĻāύāϏā§āĻāϞ āύāĻž āĻāϰāĻŋ āϝāĻž āĻĒāĻžāĻāĻĨāύā§āϰ āĻŽāĻžāύāĻ āĻā§āώāĻŽāϤāĻžāĻā§āϞāĻŋ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦāϤāĻžāĻ, āĻāϞā§āύ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻ :)
PS āĻŽāĻāĻžāϰ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ āĻĒā§āϰāĻžāύ⧠āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻā§āĻĒāĻŋāĻāĻžāϰ āĻā§āĻĄ āύāĻžāĻŽā§āϰ āĻ
āϧā§āύ⧠Jupyter āύā§āĻāĻŦā§āĻ āĻĻā§āϰ⧠āĻāϞ⧠āϝāĻžāϝāĻŧ āύāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāĻžāĻŦā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ. āĻĒā§āϰāĻžāύ⧠āϏāĻāϏā§āĻāϰāĻŖā§ āϏā§āϝā§āĻāĻ āĻāϰāϤā§, āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻĒā§āϰāϤā§āϝāϝāĻŧ āϝā§āĻ āĻāϰ⧠āϞāĻŋāĻā§āĻāĻāĻŋ āĻ
āύā§āϏāϰāĻŖ āĻāϰā§āύ/tree, āĻāĻŦāĻ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻĒā§āϰāϤā§āϝāϝāĻŧ āϏāĻš āĻŦāĻžāĻšāĻŋāϤ āĻšāϝāĻŧ /lab, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž:
- āĻā§āĻĒāĻŋāĻāĻžāϰ āύā§āĻāĻŦā§āĻ - http://10.0.5.5:8888/tree
- āĻā§āĻĒāĻŋāĻāĻžāϰ āϞā§āϝāĻžāĻŦ - http://10.0.5.5:8888/lab
āĻĒāĻžāĻāĻĨāύā§āϰ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāĻž ^
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§, āĻāĻŽāϰāĻž āϝā§āĻŽāύ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻĒāĻžāĻāĻĨāύ āĻāĻžāώāĻž āĻŽāĻĄāĻŋāĻāϞ āĻāύāϏā§āĻāϞ āĻāϰāĻŦ āύāĻŽā§āϰ, āĻĒāĻžāύā§āĻĄāĻžāϏ, āĻŽā§āϝāĻžāĻāĻĒā§āϞā§āϞā§āĻŦ, IPyWidgets āϝāĻžāϰ āĻĢāϞāĻžāĻĢāϞ āϞā§āϝāĻžāĻĒāĻāĻĒā§ āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ.
āĻĒā§āϝāĻžāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϤāĻžāϞāĻŋāĻāĻžāĻā§āĻā§āϤ āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ pip āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻĨāĻŽā§ āĻāϞāĻĒāĻžāĻāύ āϞāĻŋāύāĻžāĻā§āϏ⧠āϏāĻŋāϏā§āĻā§āĻŽ āύāĻŋāϰā§āĻāϰāϤāĻž āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§:
g++â āĻŽāĻĄāĻŋāĻāϞ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύ, āϝā§āĻšā§āϤ⧠āϤāĻžāĻĻā§āϰ āĻāĻŋāĻā§ āĻāĻžāώāĻžāϝāĻŧ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧ āϏāĻŋ ++ āĻāĻŦāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻŽāĻĄāĻŋāĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ āϰāĻžāύāĻāĻžāĻāĻŽā§ āĻĒāĻžāĻāĻĨāύā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰā§āύfreetype-dev- āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻāϰāϤāĻž āĻŽā§āϝāĻžāĻāĻĒā§āϞā§āϞā§āĻŦ
āύāĻŋāϰā§āĻāϰāϤāĻž āĻāύāϏā§āĻāϞ āĻāϰāĻž:
lxc exec jupyterlab -- apk add g++ freetype-devāĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻž āĻāĻā§: āĻāϞāĻĒāĻžāĻāύ āϞāĻŋāύāĻžāĻā§āϏ āĻŦāĻŋāϤāϰāĻŖā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻ āĻŦāϏā§āĻĨāĻžāϝāĻŧ, NumPy-āĻāϰ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻšāĻŦā§ āύāĻž; āĻāĻāĻāĻŋ āϏāĻāĻāϞāύ āϤā§āϰā§āĻāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāĻŦā§ āϝāĻž āĻāĻŽāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāύāĻŋ:
ERROR: āύāĻŽā§āĻĒāĻŋāϰ āĻāύā§āϝ āĻāĻžāĻāĻž āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžāϝāĻŧāύāĻŋ āϝāĻž 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 āĻāĻĒāĻžāĻĻāĻžāύ āϤā§āϰāĻŋ āĻāϰ⧠āϝāĻž āĻāϤā§āϏ āĻā§āĻĄā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŽā§āϝāĻžāĻāĻĒā§āϞā§āϞā§āĻŦ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻā§āϰāĻžāĻĢ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋāϰ āĻāĻāĻžāϰ⧠āĻā§āĻĄā§āϰ āĻĢāϞāĻžāĻĢāϞ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰā§:

āĻ āύā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ IPyWidgets āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ āĻāĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ āĻāĻāĻžāύā§
āĻāϰ āĻāĻŋ? ^
āĻāĻžāϞ āĻāĻžāĻ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻĨā§āĻā§ āϝāĻžāύ āĻāĻŦāĻ āύāĻŋāĻŦāύā§āϧā§āϰ āĻāĻā§āĻŦāĻžāϰ⧠āĻļā§āώ⧠āĻĒā§āĻāĻā§āĻā§āύ. āĻāĻŽāĻŋ āĻāĻā§āĻāĻžāĻā§āϤāĻāĻžāĻŦā§ āύāĻŋāĻŦāύā§āϧā§āϰ āĻļā§āώ⧠āĻāĻāĻāĻŋ āϰā§āĻĄāĻŋāĻŽā§āĻĄ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻĒā§āϏā§āĻ āĻāϰāĻŋāύāĻŋ āϝāĻž āĻāύāϏā§āĻāϞ āĻšāĻŦā§ āĻā§āĻĒāĻŋāĻāĻžāϰāϞā§āϝāĻžāĻŦ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻāϤā§āϏāĻžāĻšāĻŋāϤ āĻāϰāĻžāϰ āĻāύā§āϝ "āĻāĻ āĻā§āϞāĻŋāĻā§" :) āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻ āĻāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝā§āĻšā§āϤ⧠āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻžāύā§āύ āĻāĻŋāĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻāĻāĻ āĻŦā§āϝāĻžāĻļ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻāĻŽāĻžāύā§āĻĄ āϏāĻāĻā§āϰāĻš āĻāϰ⧠:)
āĻāĻĒāύāĻŋ āĻāĻāĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
- āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻšāĻā§ āϞāĻŋāĻā§ āĻāĻāĻāĻŋ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύāĻžāĻŽ āϏā§āĻ āĻāϰā§āύ
/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
