เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฆเฉ‡ เจตเฉ€ เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจœเจพเจ‚ เจธเจฟเจธเจŸเจฎ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจจเจพ เจชเจฟเจ† เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจฌเฉ‡เจธ เจธเจฟเจธเจŸเจฎ เจฌเจพเจฐเฉ‡ เจšเจฟเฉฐเจคเจพ เจจเจพ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจธเจญ เจ•เฉเจ เจจเจพ เจคเฉ‹เฉœเฉ‹ เจœเฉ‹ เจฐเฉ‚เจŸ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเจพเจฒ เจšเฉฑเจฒเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ?

เจชเจฐ เจ‡เจธ เจคเฉฑเจฅ เจฌเจพเจฐเฉ‡ เจ•เฉ€ เจ•เจนเฉ€เจ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจˆเจ•เฉเจฐเฉ‹ เจธเจฐเจตเจฟเจธเจฟเจœเจผ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจœเจพเจ‚ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ? เจธเฉŒ เจœเจพเจ‚ เจนเจœเจผเจพเจฐ เจตเฉ€?

เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเจพเจฒ, เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจชเจฐ เจ•เจฟเจธ เจ•เฉ€เจฎเจค 'เจคเฉ‡? เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจเจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค LXD เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจฟเจฐเจซเจผ เจ–เจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ 7.60MB RAM, เจ…เจคเฉ‡ เจœเจฟเฉฑเจฅเฉ‡ เจฐเฉ‚เจŸ เจญเจพเจ— เจธเจŸเจพเจฐเจŸเจ…เฉฑเจช เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ 9.5MB! เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจชเจธเฉฐเจฆ เจนเฉˆ, เจเจฒเฉ‹เจจ เจฎเจธเจ•? เจฎเฉˆเจ‚ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚ LXD เจฆเฉ€เจ†เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ - เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจฟเจธเจŸเจฎ

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฟ LXD เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ•เฉ€ เจนเจจ, เจ†เจ“ เจนเฉ‹เจฐ เจ…เฉฑเจ—เฉ‡ เจตเจงเฉ€เจ เจ…เจคเฉ‡ เจธเฉ‹เจšเฉ€เจ, เจ•เฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจ…เจœเจฟเจนเจพ เจนเจพเจฐเจตเฉˆเจธเจŸเจฐ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจนเฉเฉฐเจฆเจพ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจฒเจˆ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉ‹เจก เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ—เฉเจฐเจพเจซ เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ—เจคเฉ€เจธเจผเฉ€เจฒ (เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต) UI- เจตเจฟเจœเฉ‡เจŸเจธ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ•เฉ‹เจก เจจเจพเจฒ เจฒเจฟเฉฐเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจฌเจฒเฉˆเจ•เจœเฉˆเจ•... เจซเจพเจฐเจฎเฉˆเจŸเจฟเฉฐเจ— เจจเจพเจฒ เจŸเฉˆเจ•เจธเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉ‹เจก เจฆเฉ€ เจชเฉ‚เจฐเจคเฉ€ เจ•เจฐเฉ‹? เจ•เฉเจ เจ•เจฟเจธเจฎ เจฆเจพ เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจฌเจฒเฉŒเจ—? เจตเจพเจน... เจฎเฉˆเจ‚ เจ‡เจน เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚! เจšเจพเจนเฉเฉฐเจฆเฉ‡! ๐Ÿ™‚

เจฌเจฟเฉฑเจฒเฉ€ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ - เจชเฉเจฐเจพเจฃเฉ€ เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‹เจŸเจฌเฉเฉฑเจ• เจฆเฉ€ เจฌเจœเจพเจ เจฏเฉ‚เจœเจผเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉ€ เจ…เจ—เจฒเฉ€ เจชเฉ€เฉœเฉเจนเฉ€, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเฉ€ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเฉเฉฐเจจเจธเจพเจจ, เจชเจพเจ‚เจกเจพ, เจฎเฉˆเจŸเจชเจฒเฉ‹เจŸเจฒเจฟเจฌ, IPyWidgets เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เฉฑเจชเจฐ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจธเจญ เจ•เฉเจ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เจพ - เจ‡เฉฑเจ• IPython เจฒเฉˆเจชเจŸเจพเจชเฅค

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ”เจฐเจฌเจฟเจŸเจฒ เจŸเฉ‡เจ•-เจ†เจซ เจฏเฉ‹เจœเจจเจพ ^

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ†เจ“ เจ‰เจชเจฐเฉ‹เจ•เจค เจธเจ•เฉ€เจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจธเจพเจกเฉ‡ เจฒเจˆ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจ•เจพเจฐเจœ เจฏเฉ‹เจœเจจเจพ เจฆเฉ€ เจฐเฉ‚เจชเจฐเฉ‡เจ–เจพ เจ•เจฐเฉ€เจ:

  • เจ†เจ‰ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจ•เจฟเฉฑเจŸ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ…เจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ. เจ…เจธเฉ€เจ‚ เจ‡เจธ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธเจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจจเจฟเจŠเจจเจคเจฎเจตเจพเจฆ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจธเจญ เจคเฉ‹เจ‚ เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจนเฉ€ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‡เจ—เจพ, เจ•เฉเจ เจตเฉ€ เจตเจพเจงเฉ‚ เจจเจนเฉ€เจ‚เฅค
  • เจ†เจ‰ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจตเจฐเจšเฉเจ…เจฒ เจกเจฟเจธเจ• เจœเฉ‹เฉœเฉ€เจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจพเจฎ เจฆเฉ‡เจˆเจ - 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

เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ SSD เจกเจฟเจธเจ• เจฆเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, HDD เจกเจฟเจธเจ• 'เจคเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเจพเจฒ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฎเฉ‡เจฐเฉ‡ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจตเฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉˆ ๐Ÿ™‚ เจœเจฟเจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจฌเจฃเจพเจˆ เจนเฉˆ 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 เจฆเฉ€เจ†เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ - เจฒเฉ€เจจเจ•เจธ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจฟเจธเจŸเจฎ.

เจ…เจธเฉ€เจ‚ เจ‡เจธ 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 เจฌเฉ‹เจฐเจจ เจ…เจ—เฉ‡เจจ เจธเจผเฉˆเฉฑเจฒ

bash-เจชเฉ‚เจฐเจจเจคเจพ
เจฌเฉˆเจธเจผ เจธเจผเฉˆเฉฑเจฒ เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเฉ‡เจฌเจฒ เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพ

เจธเฉ‚เจกเฉ‹
เจ•เฉเจ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉเจ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจตเจœเฉ‹เจ‚ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจฆเจฟเจ“

เจธเจผเฉˆเจกเฉ‹
เจธเจผเฉˆเจกเฉ‹ เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ PAM เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ เจชเจพเจธเจตเจฐเจก เจ…เจคเฉ‡ เจ–เจพเจคเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจŸเฉ‚เจฒ เจธเฉ‚เจŸ

tzdata
เจŸเจพเจˆเจฎ เจœเจผเฉ‹เจจ เจ…เจคเฉ‡ เจกเฉ‡เจฒเจพเจˆเจŸ เจธเฉ‡เจตเจฟเฉฐเจ— เจŸเจพเจˆเจฎ เจกเฉ‡เจŸเจพ เจฒเจˆ เจธเจฐเฉ‹เจค

เจจเฉˆเจจเฉ‹
เจธเฉเจงเจพเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจชเฉ€เจ•เฉ‹ เจธเฉฐเจชเจพเจฆเจ• เจ•เจฒเฉ‹เจจ

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจ•เฉ‡ เจธเจฟเจธเจŸเจฎ เจฎเฉˆเจจ-เจชเฉ‡เจœเจพเจ‚ เจตเจฟเฉฑเจš เจธเจนเจพเจ‡เจคเจพ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ - man man-pages mdocml-apropos less

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

เจ†เจ‰ เจ…เจธเฉ€เจ‚ เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ:

  • lxc - LXD เจ•เจฒเจพเจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเฉ‹
  • exec - LXD เจ•เจฒเจพเจ‡เฉฐเจŸ เจตเจฟเจงเฉ€ เจœเฉ‹ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ
  • jupyterlab - เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ†เจˆ.เจกเฉ€
  • -- - เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจนเฉ‹เจฐ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจจเจพ เจธเจฎเจเจฟเจ† เจœเจพเจตเฉ‡ lxc เจ…เจคเฉ‡ เจฌเจพเจ•เฉ€ เจฆเฉ€ เจธเจคเจฐ เจจเฉ‚เฉฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเฉ‹
  • apk โ€” เจ…เจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ
  • 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 เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจน เจเจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ—เฉฐเจญเฉ€เจฐ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ•เจพเจฐเจจ เจจเจนเฉ€เจ‚ เจฌเจฃเจฆเฉ‡, เจชเจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจตเฉฐเจก เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉเจคเฉฐเจคเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš 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

เจ‡เฉฑเจ• เจฎเฉŒเจœเฉ‚เจฆเจพ เจฐเฉ‚เจŸ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ, เจ˜เจฐ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจ•เจพเจชเฉ€ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจ•เฉˆเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ‹:

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 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 เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ ^

เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจชเจพเจˆเจฅเจจ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เจธ เจฆเฉเจญเจพเจธเจผเฉ€เจ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจจเจพเจฒ เจนเฉ€, เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจ…เจธเฉ€เจ‚ เจชเจพเจˆเจฅเจจ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡ pip, เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจ‡เฉฑเจ• เจจเจนเฉ€เจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจฟเจธเจŸเจฎ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจฃเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจ•เฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจฆเจธเจคเฉ€ เจนเฉฑเจฒ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพ - python3 python3-dev gcc libc-dev zeromq-dev:

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

เจ†เจ‰ python เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ…เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ€เจ 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 เจ…เจคเฉ‡ เจ–เฉเฉฑเจฒเฉเจนเจฃ เจตเจพเจฒเฉ‡ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ enter เจŸเฉ‹เจ•เจจ เจเจ•เจธเฉˆเจธ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡เฅค เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉ‡เจœ 'เจคเฉ‡ เจ•เจพเจชเฉ€ เจ…เจคเฉ‡ เจชเฉ‡เจธเจŸ เจ•เจฐเฉ‹, เจซเจฟเจฐ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ เจฒเจพเจ—เจฟเจจ. เจฒเฉŒเจ—เจ‡เจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจฆเฉ‡ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจฎเฉ€เจจเฉ‚ 'เจคเฉ‡ เจœเจพเจ“, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจเจ•เจŸเฉ€เจตเฉ‡เจŸ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, เจคเฉ€เจœเฉ€ เจงเจฟเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจ•เฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจœเฉ‹เจ–เจฎ เจฒเฉˆเจฃ เจฒเจˆ เจ•เจฟเจนเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจœเจฟเจธ เจฒเจˆ เจ•เจฎเจพเจ‚เจก JupyterLab เจตเจฟเจ•เจพเจธ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ:

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ…เจธเฉ€เจ‚ เจธเจพเจฐเฉ‡ เจจเฉ‚เฉฐ เจ…เจฒเฉฑเจ— เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹ เจคเจพเจ‚ เจ•เจฟ เจคเฉ€เจœเฉ€-เจงเจฟเจฐ เจฆเฉ€เจ†เจ‚ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจœเจฟเจนเจจเจพเจ‚ เจจเฉ‚เฉฐ NodeJS เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจตเจฐเจคเจฆเฉ‡ เจนเจจ, เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจกเจฟเจธเจ• เจคเฉ‹เจ‚ เจกเจพเจŸเจพ เจšเฉ‹เจฐเฉ€ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ–เฉ‹เจฒเฉเจนเจฆเฉ‡ เจนเจพเจ‚เฅค เจตเจฟเฉฑเจš เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹ /home เจ•เฉฐเจŸเฉ‡เจจเจฐ เจคเฉ‹เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจธเจซเจฒ เจนเฉ‹เจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ‰เจน เจ•เจฐเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‹เจธเจŸ เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ 'เจคเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจฃเจ…เจงเจฟเจ•เจพเจฐเจค เจฎเฉ‹เจก. เจ‡เจธ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจœเฉ‹เจ–เจฎ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ.

เจ†เจˆเจชเจพเจˆเจฅเจจ เจจเฉ‹เจŸเจฌเฉเฉฑเจ•เจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ (เจชเฉฐเจจเฉ‡ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ) เจนเฉเจฃ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจนเฉ‹เจฎ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพ - /home/jupyter, เจชเจฐ เจธเจพเจกเฉ€เจ†เจ‚ เจฏเฉ‹เจœเจจเจพเจตเจพเจ‚ เจนเฉ‹เจธเจŸ เจ…เจคเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเจšเจ•เจพเจฐ เจกเฉ‡เจŸเจพ (เจธเจผเฉ‡เจ…เจฐ) เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃ เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‡เจธเจฒเจˆ เจ•เฉฐเจธเฉ‹เจฒ เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจ“ เจ…เจคเฉ‡ เจฐเฉเจ•เฉ‹ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจนเจพเจŸเจ•เฉ€ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉเจ†เจฐเจพ - CTRL+C เจ…เจคเฉ‡ เจœเจตเจพเจฌ y เจฌเฉ‡เจจเจคเฉ€ 'เจคเฉ‡. เจซเจฟเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจธเฉˆเจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจพเจชเจค เจ•เจฐเฉ‹ jupyter เจ‡เฉฑเจ• เจนเฉŒเจŸเจ•เฉ€ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจเจพ CTRL+D.

เจนเฉ‹เจธเจŸ เจจเจพเจฒ เจกเจพเจŸเจพ เจธเจพเจ‚เจเจพ เจ•เจฐเจจเจพ ^

เจนเฉ‹เจธเจŸ เจจเจพเจฒ เจกเฉ‡เจŸเจพ เจธเจพเจ‚เจเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจฟเจตเจพเจˆเจธ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

  • lxc config device add โ€” เจ•เจฎเจพเจ‚เจก เจœเฉฐเจคเจฐ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ€ เจนเฉˆ
  • jupyter โ€” เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ€ ID เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจจเจพ เจœเฉ‹เฉœเฉ€ เจ—เจˆ เจนเฉˆ
  • hostfs - เจกเจฟเจตเจพเจˆเจธ เจ†เจˆ.เจกเฉ€. เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจˆ เจตเฉ€ เจจเจพเจฎ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  • disk โ€” เจกเจฟเจตเจพเจˆเจธ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฆเจฐเจธเจพเจˆ เจ—เจˆ เจนเฉˆ
  • path โ€” เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจฎเจพเจฐเจ— เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš LXD เจ‡เจธ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเฉ‡เจ—เจพ
  • source โ€” เจธเจฐเฉ‹เจค เจฆเจฟเจ“, เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเจพ เจฎเจพเจฐเจ— เจœเจฟเจธ เจจเฉ‚เฉฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเจพเจฒ เจธเจพเจ‚เจเจพ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจคเจฐเจœเฉ€เจนเจพเจ‚ เจ…เจจเฉเจธเจพเจฐ เจฎเจพเจฐเจ— เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‹
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

เจ•เฉˆเจŸเจพเจฒเจพเจ— เจฒเจˆ /home/dv/projects/ipython-notebooks เจ‡เจœเจพเจœเจผเจค เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ€ เจœเจพเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจ•เฉ‹เจฒ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจ‡เจธ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ UID เจนเฉˆ SubUID + UID, เจ…เจงเจฟเจ†เจ‡ เจฆเฉ‡เจ–เฉ‹ เจธเฉเจฐเฉฑเจ–เจฟเจ†เฅค เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš LXD เจฆเฉ€เจ†เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ - เจฒเฉ€เจจเจ•เจธ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจฟเจธเจŸเจฎ.

เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจ‡เจœเจพเจœเจผเจค เจธเฉˆเจŸ เจ•เจฐเฉ‹, เจœเจฟเฉฑเจฅเฉ‡ เจฎเจพเจฒเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ jupyter, เจ…เจคเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ $USER เจคเฉเจนเจพเจกเฉ‡ เจนเฉ‹เจธเจŸ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‡เจ—เจพ:

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

เจธเจคเจฟ เจธเฉเจฐเฉ€ เจ…เจ•เจพเจฒ เจฆเฉเจจเจฟเจ†! ^

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเฉ‡ เจตเฉ€ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉฐเจธเฉ‹เจฒ เจธเฉˆเจธเจผเจจ เจ–เฉเฉฑเจฒเฉเจนเจพ เจนเฉˆ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ, เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹ --notebook-dir เจฎเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ /mnt/hostfs เจ‰เจธ เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจฒเฉˆเจชเจŸเจพเจช เจฆเฉ‡ เจฐเฉ‚เจŸ เจฆเฉ‡ เจฎเจพเจฐเจ— เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจชเจฟเจ›เจฒเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจธเฉ€:

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

เจซเจฟเจฐ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจœเจพเจ“ http://10.0.5.5:8888 เจ…เจคเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจคเจธเจตเฉ€เจฐ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจฆเจฟเฉฑเจคเฉ‡ เจฌเจŸเจจ เจจเฉ‚เฉฐ เจฆเจฌเจพ เจ•เฉ‡ เจ†เจชเจฃเจพ เจชเจนเจฟเจฒเจพ เจฒเฉˆเจชเจŸเจพเจช เจฌเจฃเจพเจ“:

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจซเจฟเจฐ, เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš, เจชเจพเจˆเจฅเจจ เจ•เฉ‹เจก เจฆเจฐเจœ เจ•เจฐเฉ‹ เจœเฉ‹ เจ•เจฒเจพเจธเจฟเจ• เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเฉ‡เจ—เจพ Hello World!. เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฆเจพเจ–เจฒ เจ•เจฐเจจเจพ เจชเฉ‚เจฐเจพ เจ•เจฐ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฆเจฌเจพเจ“ CTRL+ENTER เจœเจพเจ‚ JupyterLab เจจเฉ‚เฉฐ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจŸเฉ‚เจฒเจฌเจพเจฐ 'เจคเฉ‡ "เจชเจฒเฉ‡" เจฌเจŸเจจ เจฆเจฌเจพเจ“:

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ‡เจธ เจฌเจฟเฉฐเจฆเฉ‚ 'เจคเฉ‡, เจฒเจ—เจญเจ— เจนเจฐ เจšเฉ€เจœเจผ เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉˆ, เจชเจฐ เจ‡เจน เจฆเจฟเจฒเจšเจธเจช เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจตเจพเจงเฉ‚ เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ (เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚) เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจชเจพเจˆเจฅเจจ เจฆเฉ€เจ†เจ‚ เจฎเจฟเจ†เจฐเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจงเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ, เจ‡เจธ เจฒเจˆ, เจ†เจ“ เจ…เฉฑเจ—เฉ‡ เจตเจงเฉ€เจ :)

PS เจฆเจฟเจฒเจšเจธเจช เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจพเจฃเฉ‡ เจฒเจพเจ—เฉ‚ เจœเฉเจชเฉ€เจŸเจฐ เจ•เฉ‹เจก เจจเจพเจฎ เจฆเฉ‡ เจคเจนเจฟเจค เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‹เจŸเจฌเฉเฉฑเจ• เจฆเฉ‚เจฐ เจจเจนเฉ€เจ‚ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ‡เจธเจฆเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ. เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจคเฉ‡ เจœเจพเจฃ เจฒเจˆ, เจชเจคเฉ‡ เจตเจฟเฉฑเจš เจชเจฟเจ›เฉ‡เจคเจฐ เจœเฉ‹เฉœเจจ เจตเจพเจฒเฉ‡ เจฒเจฟเฉฐเจ• เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเฉ‹/tree, เจ…เจคเฉ‡ เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€ เจชเจฟเจ›เฉ‡เจคเจฐ เจจเจพเจฒ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ /lab, เจชเจฐ เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ:

  • เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‹เจŸเจฌเฉเฉฑเจ• - http://10.0.5.5:8888/tree
  • เจœเฉเจชเฉ€เจŸเจฐ เจฒเฉˆเจฌ - http://10.0.5.5:8888/lab

เจชเจพเจˆเจฅเจจ เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจ•เจฐเจจเจพ ^

เจ‡เจธ เจญเจพเจ— เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ…เจœเจฟเจนเฉ‡ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจชเจพเจˆเจฅเจจ เจญเจพเจธเจผเจพ เจฆเฉ‡ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡ เจธเฉเฉฐเจจเจธเจพเจจ, เจชเจพเจ‚เจกเจพ, เจฎเฉˆเจŸเจชเจฒเฉ‹เจŸเจฒเจฟเจฌ, IPyWidgets เจœเจฟเจธ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฒเฉˆเจชเจŸเจพเจชเจพเจ‚ เจตเจฟเฉฑเจš เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจนเจจ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ.

เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฐเจพเจนเฉ€เจ‚ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ pip เจธเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจเจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจธเจฟเจธเจŸเจฎ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

  • g++ - เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ C ++ เจ…เจคเฉ‡ เจฐเจจเจŸเจพเจˆเจฎ 'เจคเฉ‡ เจชเจพเจˆเจฅเจจ เจจเจพเจฒ เจฌเจพเจˆเจจเจฐเฉ€ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจœเฉเฉœเฉ‹
  • freetype-dev - เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฒเจˆ เจจเจฟเจฐเจญเจฐเจคเจพ เจฎเฉˆเจŸเจชเจฒเฉ‹เจŸเจฒเจฟเจฌ

เจจเจฟเจฐเจญเจฐเจคเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ:

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

เจ‡เฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ: เจเจฒเจชเจพเจˆเจจ เจฒเฉ€เจจเจ•เจธ เจตเฉฐเจก เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, NumPy เจฆเฉ‡ เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ; เจ‡เฉฑเจ• เจธเฉฐเจ•เจฒเจจ เจ—เจฒเจคเฉ€ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เฉ€ เจœเจฟเจธ เจจเฉ‚เฉฐ เจฎเฉˆเจ‚ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฟเจ†:

เจ—เจฒเจคเฉ€: เจจเฉฐเจชเฉ€ เจฒเจˆ เจชเจนเฉ€เจ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ เจœเจพ เจธเจ•เจฆเฉ‡ เจœเฉ‹ PEP 517 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ

เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจธเจพเจˆเจŸ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจ‡เจธ เจคเฉ‹เจ‚ เจฅเฉ‹เฉœเฉเจนเจพ เจชเฉเจฐเจพเจฃเจพ เจนเฉˆ:

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

เจ…เฉฑเจ—เฉ‡, เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฐเจพเจนเฉ€เจ‚ เจชเจพเจˆเจฅเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ pip. เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจธเจฌเจฐ เจฐเฉฑเจ–เฉ‹ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ•เฉฐเจชเจพเจ‡เจฒ เจนเฉ‹เจฃเจ—เฉ‡ เจ…เจคเฉ‡ เจ•เฉเจ เจฎเจฟเฉฐเจŸ เจฒเฉฑเจ— เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจฎเฉ‡เจฐเฉ€ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡, เจธเฉฐเจ•เจฒเจจ เจตเจฟเฉฑเจš ~ 15 เจฎเจฟเฉฐเจŸ เจฒเฉฑเจ—เฉ‡:

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

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ•เฉˆเจšเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฒเฉ€เจ…เจฐ เจ•เจฐเจจเจพ:

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

JupyterLab เจตเจฟเฉฑเจš เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ ^

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจนเฉ‹ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ, เจ‡เจธ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจจเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ‡ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจนเฉ‹ เจœเจพเจฃเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เฉฐเจธเฉ‹เจฒ เจธเฉˆเจธเจผเจจ เจตเจฟเฉฑเจš, เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ CTRL+C เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เจน เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฆเจพเจ–เจฒ เจนเฉ‹เจตเฉ‹ y เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฃ เจ…เจคเฉ‡ เจซเจฟเจฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจ•เฉ€เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจ‰เฉฑเจชเจฐ เจคเฉ€เจฐ เจจเฉ‚เฉฐ เจฆเจฌเจพ เจ•เฉ‡ เจคเจพเจ‚ เจ•เจฟ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจตเจพเจฐ-เจตเจพเจฐ เจฆเจพเจ–เจฒ เจจเจพ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เฉ‡ Enter เจ‡เจธ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ:

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

เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจœเจพเจ“ http://10.0.5.5:8888/lab เจœเจพเจ‚ เจ†เจชเจฃเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจชเฉฐเจจเฉ‡ เจจเฉ‚เฉฐ เจคเจพเจœเจผเจพ เจ•เจฐเฉ‹, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจจเฉ‹เจŸเจฌเฉเฉฑเจ• เจธเฉˆเฉฑเจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเจพ เจ•เฉ‹เจก เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹:

%matplotlib inline

from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

def f(m, b):
    plt.figure(2)
    x = np.linspace(-10, 10, num=1000)
    plt.plot(x, m * x + b)
    plt.ylim(-5, 5)
    plt.show()

interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจคเจธเจตเฉ€เจฐ เจตเจพเจ‚เจ— เจจเจคเฉ€เจœเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ IPyWidgets เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจ‡เฉฑเจ• UI เจคเฉฑเจค เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจตเฉ€ เจฎเฉˆเจŸเจชเจฒเฉ‹เจŸเจฒเจฟเจฌ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจ—เฉเจฐเจพเจซ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเจธเจตเฉ€เจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ:

เจœเฉเจชเฉ€เจŸเจฐ เจจเฉ‚เฉฐ LXD เจ”เจฐเจฌเจฟเจŸ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ

เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ IPyWidgets เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเจธ เจตเจฟเฉฑเจš เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡

เจนเฉ‹เจฐ เจ•เฉ€? ^

เจšเฉฐเจ—เจพ เจนเฉ‹เจ‡เจ† เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฐเฉเจ•เฉ‡ เจ…เจคเฉ‡ เจฒเฉ‡เจ– เจฆเฉ‡ เจฌเจฟเจฒเจ•เฉเจฒ เจ…เฉฐเจค เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ—เจเฅค เจฎเฉˆเจ‚ เจœเจพเจฃ-เจฌเฉเฉฑเจ เจ•เฉ‡ เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจชเฉ‹เจธเจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเฉ‹ เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเฉเจชเฉ€เจŸเจฐเจฒเฉˆเจฌ เจตเจฐเจ•เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจคเจธเจผเจพเจนเจฟเจค เจ•เจฐเจจ เจฒเจˆ "เจ‡เฉฑเจ• เจ•เจฒเจฟเฉฑเจ•" เจตเจฟเฉฑเจš :) เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚, เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจ•เฉ‡ :)

เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

  • เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจตเจฟเฉฑเจš เจฒเจฟเจ– เจ•เฉ‡ เจ‡เฉฑเจ• 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹