แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ’แƒฅแƒแƒœแƒ˜แƒแƒ— แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒขแƒแƒ แƒ”แƒ‘แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒคแƒ˜แƒฅแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ’แƒ แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก root แƒžแƒ แƒ˜แƒ•แƒ˜แƒšแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒ—?

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒ—แƒฅแƒ•แƒแƒก แƒ˜แƒ› แƒคแƒแƒฅแƒขแƒ–แƒ”, แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒœ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ”? แƒแƒกแƒ˜ แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒแƒ—แƒแƒกแƒ˜?

แƒฐแƒ˜แƒžแƒ”แƒ แƒ•แƒ˜แƒ–แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒแƒกแƒ”แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒคแƒแƒกแƒแƒ“? แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ LXD-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Alpine Linux แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒแƒ–แƒ”, แƒ›แƒแƒ˜แƒฎแƒ›แƒแƒ แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ 7.60MB แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒแƒ“แƒแƒช root แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ˜ แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ 9.5MB! แƒ แƒแƒ’แƒแƒ  แƒ›แƒแƒ’แƒฌแƒแƒœแƒก แƒ”แƒก, แƒ”แƒšแƒแƒœ แƒ›แƒแƒกแƒ™? แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— LXD-แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ - แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ Linux-แƒจแƒ˜

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ แƒ แƒแƒ แƒ˜แƒก LXD แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒ“แƒ แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒแƒ—, แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ™แƒแƒ“แƒ˜ แƒฐแƒแƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒ— แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ”แƒ‘แƒ˜, แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ (แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ“) แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— UI- แƒ•แƒ˜แƒฏแƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ“แƒ—แƒแƒœ. แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒ— แƒ‘แƒšแƒ”แƒฅแƒฏแƒ”แƒ™แƒ˜แƒ—... แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒ? แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ‘แƒšแƒแƒ’แƒ˜? แƒ•แƒแƒ... แƒ›แƒ˜แƒœแƒ“แƒ! แƒ’แƒ˜แƒœแƒ“แƒ! ๐Ÿ™‚

แƒจแƒ”แƒฎแƒ”แƒ“แƒ”แƒ— แƒ™แƒแƒขแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ, แƒกแƒแƒ“แƒแƒช แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒฉแƒแƒ•แƒคแƒ แƒ˜แƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ - แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ—แƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ Jupyter Notebook-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ— Python แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒœแƒฃแƒ›แƒžแƒ˜, แƒžแƒแƒœแƒ“แƒ, matplotlib, IPyWidgets แƒ แƒแƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ–แƒ”แƒ›แƒแƒ— แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ— แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒคแƒแƒ˜แƒšแƒจแƒ˜ - IPython แƒšแƒ”แƒžแƒขแƒแƒžแƒจแƒ˜.

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒแƒ แƒ‘แƒ˜แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒคแƒ แƒ”แƒœแƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ ^

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒ— แƒ›แƒแƒ™แƒšแƒ” แƒกแƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ แƒ’แƒ”แƒ’แƒ›แƒ, แƒ แƒแƒ—แƒ แƒ’แƒแƒ’แƒ•แƒ˜แƒแƒ“แƒ•แƒ˜แƒšแƒ“แƒ”แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ:

  • แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ“แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒกแƒแƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒแƒšแƒžแƒฃแƒ แƒ˜ แƒ”แƒœแƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ› แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒแƒ“ แƒ˜แƒกแƒแƒฎแƒแƒ•แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒ˜แƒ–แƒ›แƒก แƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒ“แƒแƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒš แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒแƒก, แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜.
  • แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ•แƒชแƒ”แƒ— แƒกแƒแƒฎแƒ”แƒšแƒ˜ - 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-แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜:

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒ—แƒฃแƒ›แƒชแƒ, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ•แƒแƒ แƒ— แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ แƒ“แƒ แƒ›แƒแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ›แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒœ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ 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 แƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒšแƒ”แƒžแƒขแƒแƒžแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”:

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ•แƒ”แƒšแƒจแƒ˜ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒ˜แƒ™แƒแƒก Hello World!. แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒแƒญแƒ˜แƒ แƒ”แƒ— CTRL+ENTER แƒแƒœ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ "แƒ—แƒแƒ›แƒแƒจแƒ˜" แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ—แƒ แƒžแƒแƒœแƒ”แƒšแƒ–แƒ” แƒ–แƒ”แƒ“แƒ, แƒ แƒแƒ—แƒ JupyterLab-แƒ›แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒ”แƒก:

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ”, แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒ–แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ—แƒฃ แƒแƒ  แƒ“แƒแƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ— 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 แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—:

แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ LXD แƒแƒ แƒ‘แƒ˜แƒขแƒแƒ–แƒ”

แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ IPyWidgets แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ˜แƒก แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒแƒฅ

แฒกแƒฎแƒ•แƒ แƒ แƒ? ^

แƒ™แƒแƒ แƒ’แƒ˜แƒ, แƒ—แƒฃ แƒ“แƒแƒ แƒฉแƒ˜แƒ— แƒ“แƒ แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒ”แƒ— แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ”. แƒ›แƒ” แƒ’แƒแƒœแƒ–แƒ แƒแƒฎ แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ” แƒ›แƒ–แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒฃแƒžแƒ˜แƒขแƒ”แƒ แƒ˜แƒก แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒฎแƒแƒšแƒ˜แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก "แƒ”แƒ แƒ—แƒ˜ แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒ—" :) แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ˜แƒชแƒ˜แƒ— แƒ แƒแƒ’แƒแƒ , แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒ”แƒ— แƒ”แƒ แƒ— Bash แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜ :)

แฒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ—:

  • แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒ— /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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ