Docker เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบซเบผเบดเป‰เบ™เบซเบผเบทเบšเปเปˆ? เบซเบผเบทเบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡?

เบชเบฐเบšเบฒเบเบ”เบตเบ—เบธเบเบ„เบปเบ™!

เบ‚เป‰เบญเบเบขเบฒเบเป€เบงเบปเป‰เบฒเบเบปเบ‡เบเบฑเบšเบซเบปเบงเบ‚เปเป‰, เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเบ–เบทเบเบ•เป‰เบญเบ‡เบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบšเบญเบเป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบฅเบฑเบเบ™เป‰เบญเบ:

เป€เบ‚เบปเป‰เบฒ

เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบ™เป‰เบฒเบ”เบฝเบง, scala / java เปเบฅเบฐ nodejs เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™ (เปเบ™เปˆเบ™เบญเบ™เบ„เบนเปˆเบœเบปเบงเป€เบกเบเบซเบผเบทเบชเบฒเบกเบ›เบต), เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบงเปˆเบฒ Docker เปเบกเปˆเบ™ manna เบˆเบฒเบเบชเบฐเบซเบงเบฑเบ™เปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบเปเบฅเบฐเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป„เบ”เป‰. เปเบฅเบฐเบˆเบฒเบเบ™เบตเป‰เบกเบฑเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบˆเบฐเบกเบต Docker เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เป€เบšเบดเปˆเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™ vacancy เบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒเบขเบนเปˆเปƒเบ™ hh เบ”เบฝเบงเบเบฑเบ™. เบ—เบธเบเป†เบงเบดเบ™เบฒเบ—เบตเบกเบตเบเบฒเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡ docker, เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบกเบฑเบ™, เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ”เป‰เบฒเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ ๐Ÿ˜‰

เปƒเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบžเบปเบšเบเบฑเบšเบซเบผเบฒเบเป†เบ„เบปเบ™, เบ”เป‰เบงเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ„เบฐเบ•เบดเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ•เปเปˆ Docker เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เบšเบฒเบ‡เบ„เบปเบ™เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบชเบฐเบ”เบงเบเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เป‰เบฒเบกเป€เบงเบ—เบต. เบ„เบปเบ™เบ—เบตเบชเบญเบ‡เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ„เบงเบ™เบˆเบฐเปเบฅเปˆเบ™เปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเปเบฅเบฐเบเปเบฒเป„เบฅเบˆเบฐเบกเบฒเบˆเบฒเบเบกเบฑเบ™, เบ„เบปเบ™เบ—เบตเบชเบฒเบกเบšเปเปˆเบชเบปเบ™เปƒเบˆเบซเบเบฑเบ‡เป€เบฅเบตเบเปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฅเบปเบšเบเบงเบ™ (เบžเบงเบเป€เบ‚เบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบฑเบšเบšเป‰เบฒเบ™ - เบ‚เป‰เบญเบเบญเบดเบ”เบชเบฒเบžเบงเบเป€เบ‚เบปเบฒ, เป‚เบ”เบ เบงเบดเบ—เบต :)

เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบˆเบถเปˆเบ‡เปƒเบŠเป‰ docker? เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเป‰เบญเบ™เป€เบซเบ”เบœเบปเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, 99% เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™
  • เป€เบ›เบตเบ”เบ•เบปเบง nginx เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ frontend เปเบฅเบฐ proxying เบเบฑเบš backend
  • เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบธเป‰เบกเบซเปเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™เบฎเบนเบš docker, เบงเบดเบ—เบตเบ™เบตเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบก docker, เบšเบฑเบ™เบซเบฒเบเบฒเบ™เปเบˆเบเบขเบฒเบเบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เบ—เบฑเบ™เบ—เบต.
  • เบเบฒเบ™โ€‹เบ„เบปเป‰เบ™โ€‹เบžเบปเบšโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เบ›เปˆเบญเบ‡โ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเป‰เบฒเบ‡ microservicesโ€‹, เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบžเบฒโ€‹เบŠเบฐโ€‹เบ™เบฐ (เบ—เบตเปˆโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹) เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ›โ€‹เป€เบ–เบดเบ‡โ€‹เป„เบ”เป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบ™เบฒเบกโ€‹เปเบเบ‡โ€‹, เบชเบฐโ€‹เบ”เบงเบโ€‹เบซเบผเบฒเบโ€‹.
  • เบกเบฑเบ™เบกเปˆเบงเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ–เบฑเบ‡เปเบฅเบฐ "เบซเบผเบดเป‰เบ™" เปƒเบ™เบกเบฑเบ™.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบเปˆเบฝเบงเบเบฑเบš docker:

  • เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบ, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™ Docker เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เบ–เป‰เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ jre เบซเบผเบท nodejs เปเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเป‰เบง?
  • เบ–เป‰เบฒเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบญเบตเป‰เบ™เปƒเบŠเป‰เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบชเปˆเบงเบ™เบ•เบปเบง) เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ docker เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบ‚เป‰เบญเบเบเบฑเบ‡เบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ https, เป€เบžเบฒเบฐเบงเปˆเบฒ docker cli เป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™ https เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เป‚เบญเป‰เบ ... เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบ™เปˆเบ™เบญเบ™, เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป‚เบ”เบเบœเปˆเบฒเบ™ docker save เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡เบฎเบนเบšเบžเบฒเบšเบœเปˆเบฒเบ™ scp ... เปเบ•เปˆเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบฎเปˆเบฒเบ‡เบเบฒเบเบซเบผเบฒเบ. เปเบฅเบฐเบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ "crutch" เบˆเบปเบ™เบเปˆเบงเบฒ repository เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบ›เบฒเบเบปเบ”
  • docker-compose. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเบฑเบ™เบˆเบธ. เบซเบกเบปเบ”โ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ™เบตเป‰. เบฅเบฒเบงเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป„เบ”เป‰เบญเบตเบ. Docker-compose เบกเบตเบซเบผเบฒเบเป†เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ‚เบญเบ‡เบกเบฑเบ™, syntax เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบšเปเปˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เปเบ™เบงเปƒเบ”, เบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ‚เป‰เบญเบเบˆเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™เบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™.
  • เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ—เบตเบก, เบ„เบปเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบฝเบ™ Dockerfile เบ‚เบตเป‰เบฎเป‰เบฒเบเบซเบผเบฒเบ, เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰, เป€เบžเบตเปˆเบกเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเบšเบžเบฒเบš, เบชเบทเบšเบ—เบญเบ”เบˆเบฒเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™ Dockerhub เบซเบผเบทเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบชเปˆเบงเบ™เบ•เบปเบง, เบชเป‰เบฒเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡. docker-compose เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ›เบฐเบเบฒเบ”เบ”เป‰เบงเบเบ„เบงเบฒเบกเบžเบนเบกเปƒเบˆเบงเปˆเบฒ Docker เปเบกเปˆเบ™เป€เบขเบฑเบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ, เปเบฅเบฐ HR เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบฝเบ™เปƒเบ™เบšเปˆเบญเบ™เบซเบงเปˆเบฒเบ‡: "เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Docker เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง."
  • เบ‚เป‰เบญเบเบ–เบทเบเบซเบฅเบญเบเบฅเบงเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป‚เบ”เบเบ„เบงเบฒเบกเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเป‰เบฝเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปƒเบ™ Docker: postgresql, kafka, redis. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ เปœเป‰เบฒ เบชเบปเบ‡เบชเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเปเบฅเปˆเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เบ‚เบฒเบเป€เบญเบ‡. เปเบฅเบฐเป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ„เปเบฒเบ–เบฒเบกเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบ—เบฑเบ™เบ—เบต: เบœเบนเป‰เบ‚เบฒเบเบšเปเปˆเบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฎเบฑเบเบชเบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™ Docker, เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ™เบตเป‰, เบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบ‚เบปเบฒเบฎเบนเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡?
  • เบ„เปเบฒเบ–เบฒเบกเบชเบฐเป€เบซเบกเบตเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ„เบปเบ‡เบ•เบปเบงเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบšเบฑเบ™เบˆเบธ. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบดเบ”เบงเปˆเบฒ, เบ‚เป‰เบญเบเบ„เบงเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ host directory เบซเบผเบทเบชเป‰เบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™ docker เบซเบผเบทเบชเป‰เบฒเบ‡เบ–เบฑเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบŠเบดเปˆเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™ deprecated? เบ–เป‰เบฒเบ‚เป‰เบญเบเบ•เบดเบ”เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ‚เป‰เบญเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ uid เปเบฅเบฐ gid เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™ container เบเบปเบ‡เบเบฑเบš id เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเป€เบ›เบตเบ”เบ•เบปเบง container, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เป‚เบ”เบ container เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบฎเบฒเบ. เบ–เป‰เบฒเบ‚เป‰เบญเบเปƒเบŠเป‰ volume เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เบšเบฒเบ‡เบญเบฑเบ™ /usr/* เปเบฅเบฐเบˆเบฐเบกเบตเป€เบฅเบทเปˆเบญเบ‡เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš uid เปเบฅเบฐ gid เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบ›เบตเบ”เบ•เบปเบงเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เปเบฅเบฐเบŠเบญเบเบซเบฒเบ„เปเบฒเบ•เบญเบšเบ‚เบญเบ‡เบ„เปเบฒเบ–เบฒเบก: "เปƒเบ™เบšเบฑเบ™เบŠเบตเบšเบฑเบ™เบˆเบธเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เบ‚เบฝเบ™เป„เบŸเบฅเปŒ?"

เบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡ tinker เบเบฑเบš Docker เบ”เบปเบ™เป€เบเบตเบ™เป„เบ› เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™: เบ‚เป‰เบญเบเบ„เบดเบ”เบญเบญเบเบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง containers, เบฎเบนเบšเบžเบฒเบšเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบˆเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰ Makefiles เบ—เบตเปˆเบกเบตเบ™เบฒเบกเปเบเบ‡เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ Docker เบเบฒเบง. เบ‚เป‰เบญเบเบเบฝเบ”เบŠเบฑเบ‡ docker-compose เป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบขเบฒเบเบฎเบฝเบ™เบฎเบนเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบทเปˆเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” docker. เปเบฅเบฐ docker-compose up เบกเบฑเบ™เบฅเบปเบšเบเบงเบ™เบ‚เป‰เบญเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบเบฑเบ‡เบžเบปเบšเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™ build เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฎเบนเบšเบ›เบฐเบเบญเบšเปเบฅเป‰เบง. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบขเบฒเบเบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเป„เบง. เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ docker.

เปเบ™เบฐเบ™เบณ Ansible

เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰ (เบชเบฒเบกเป€เบ”เบทเบญเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰), เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™ DevOps, เป€เบเบทเบญเบšเบ—เบธเบเป†เบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบกเบตเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบ”เบตเบ•เปเปˆ Docker. เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™:

  • docker เบเบปเบ”เบฅเบฐเบšเบฝเบš iptables (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบกเบฑเบ™เป„เบ”เป‰เปƒเบ™ daemon.json)
  • docker เปเบกเปˆเบ™ buggy เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”
  • เบ–เป‰เบฒ docker daemon เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบธเบ containers เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ crash เบ•เบฒเบก
  • เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต docker
  • เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ docker เบ–เป‰เบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡ Ansible เปเบฅเบฐ virtual

เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบทเปˆเบ™ - Ansible. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบเบดเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบกเบฑเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เปเบ•เปˆโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ‚เบฝเบ™ playbook เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹. เปเบฅเบฐเบ•เบญเบ™เบ™เบตเป‰เบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เบงเบฝเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบดเป„เบชเบ—เบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™! เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบฎเบนเป‰: Ansible เบกเบตเป‚เบกเบ”เบนเบ™เบชเปเบฒเบฅเบฑเบšเปเบฅเปˆเบ™ docker containers เบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš, เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เปเบฅเบฐ containers เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบ•เปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ! เบ„เบงเบฒเบกเบชเบธเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบ‚เบญเบšเป€เบ‚เบ” - เบ‚เป‰เบญเบเบžเบปเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบ–เบดเป‰เบกเป„เบŸเบฅเปŒ Makefile เปเบฅเบฐ docker-compose เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบงเบฝเบเบ‡เบฒเบ™ yaml. เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เป‚เบ”เบเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบŠเบฑเปˆเบ™ loop, when, เปเบฅเบฐเบญเบทเปˆเบ™เป†

Docker เบชเปเบฒเบฅเบฑเบšเปเบฅเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเป€เบŠเบฑเปˆเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™

เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบญเบธเป‚เบกเบ‡ ssh. เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒเบกเบฑเบ™เบ‡เปˆเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐ "เบชเบปเปˆเบ‡เบ•เปเปˆ" เบžเบญเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเป„เบ›เบซเบฒเบžเบญเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เป€เบŠเบตเบšเป€เบงเบตเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบงเบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ VirtualBox. เบ–เป‰เบฒเป€เบžเบทเปˆเบญเบ™เบฎเปˆเบงเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเบซเบผเบทเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ (เบซเบผเบทเบšเบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบญเบทเปˆเบ™เป†), เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ›เบฐเบเบญเบšเบ™เบตเป‰เปเบฅเบฐเบ›เบดเบ”เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบžเบญเบ”เปƒเบซเป‰เบœเบปเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ docker container.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบชเบปเปˆเบ‡เบ•เปเปˆเบžเบญเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบ—เบตเปˆเปเบฅเปˆเบ™ postgresql:

ssh -L 9000:localhost:5432 [email protected]

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเบกเบ‡เบฒเบ™. เป€เบŠเบตเบšเป€เบงเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเป†เบ„เบปเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™; เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒ postgresql, เป€เบ‚เบปเป‰เบฒเปƒเบˆ Docker เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบญเบทเปˆเบ™เป†. เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เปƒเบ™ Docker เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เบ–เป‰เบฒเบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเบฐเบšเบฑเบšเบชเบฐเป€เบžเบฒเบฐ. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ ssh!

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เป„เบ”เป‰เบญเปˆเบฒเบ™เบงเปˆเบฒเบญเบธเป‚เบกเบ‡ SSH เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡ VPN เบ›เบปเบเบเบฐเบ•เบด! เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ OpenVPN เบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” VPN เบญเบทเปˆเบ™เป†, เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบกเบญเบšเปƒเบซเป‰เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบขเบฑเบ™เบซเบผเบฒเบ!

เป‚เบŠเบเบ”เบต, AWS, GoogleCloud เปเบฅเบฐเบญเบทเปˆเบ™เป†เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบŸเบฃเบต XNUMX เบ›เบต, เบชเบฐเบ™เบฑเป‰เบ™เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™! เบžเบงเบเบกเบฑเบ™เบฅเบฒเบ„เบฒเบ–เบทเบเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เบดเบ”เบžเบงเบเบกเบฑเบ™เป€เบกเบทเปˆเบญเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. เบ‚เป‰เบญเบเบชเบปเบ‡เป„เบชเบชเบฐเป€เบซเบกเบตเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเป€เบŠเบฑเปˆเบ™ gcloud, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเบžเบปเบšเบžเบงเบเบกเบฑเบ™.

เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ Alpine เบ”เบฝเบงเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™เปƒเบ™ docker containers. เบ”เบต, เบซเบผเบทเบšเบฒเบ‡เบเบฒเบ™เปเบˆเบเบขเบฒเบเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบญเบทเปˆเบ™เป†เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เบšเบนเบ”เป„เบงเบ‚เบถเป‰เบ™.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบธเปˆเบก: เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบฅเบฐเบ„เบงเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบชเบดเปˆเบ‡เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบญเบทเปˆเบ™เป†เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบซเบผเบทเปƒเบ™ virtualbox. เบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ docker เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเบžเบฒเบš docker เปเบฅเบฐเบเบฒเบ™เปเบˆเบเบขเบฒเบ

เบ‚เป‰เบญเบเบ‚เบฝเบ™เปเบฅเป‰เบง เบšเบปเบ”เบ„เบงเบฒเบก เปƒเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเบžเบฒเบš docker เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปƒเบ”เป†. เบฎเบนเบšเบžเบฒเบš Docker เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ docker container. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™เบฎเบนเบšเบžเบฒเบš docker, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบญเบฑเบšเป€เบเบ”เป€เบžเบทเปˆเบญเปƒเบŠเป‰ docker containers เปเบฅเบฐเบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™.

เป€เบˆเบปเป‰เบฒเป€เบ„เบตเบเป€เบซเบฑเบ™เบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบ—เบตเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบญเบšเปเบง port เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบฎเบนเบš docker?
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบชเบญเบ‡เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบตเบชเบฐเป€เบžเบฒเบฐ; เบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบฎเบนเบšเบžเบฒเบš docker, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบกเปเบฅเบฐเบ”เบปเบเบˆเบฒเบเป€เบงเบ—เบตเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เป€เบˆเบปเป‰เบฒเป€เบ„เบตเบเบชเบปเบ‡เป„เบชเบšเปเบงเปˆเบฒ เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบˆเบดเปˆเบ‡เบกเบตเบฎเบนเบšเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบซเบผเบฒเบเปƒเบ™ dockerhub? เบเบฐเบฅเบธเบ™เบฒเปƒเบชเปˆ nginx เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเป€เบซเบฑเบ™ 100500 เบฎเบนเบšเบžเบฒเบšเบˆเบฒเบเบ„เบปเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ„เบปเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ nginx เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เบžเบงเบเป€เบ‚เบปเบฒเบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบก nginx เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปƒเบซเป‰เบเบฑเบšเบฎเบนเบšเบžเบฒเบš docker เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบžเบฒเบŠเบฐเบ™เบฐ.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เป„เบงเป‰เปƒเบ™ tgz, เบ–เป‰เบฒเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™ docker, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบตเปˆเบก tgz เปƒเบชเปˆ Dockerfile, เบชเบทเบšเบ—เบญเบ”เบˆเบฒเบเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบชเป‰เบฒเบ‡ buns เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปƒเบ™ tgz. เปƒเบœเบเปเปˆเบ•เบฒเบกเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš docker เบˆเบฐเบฎเบนเป‰เบงเปˆเบฒ tgz เปเบกเปˆเบ™เบซเบเบฑเบ‡เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบฅเบฒเบงเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ‚เป‰เบญเบเปƒเบŠเป‰ docker เบ—เบตเปˆเบ™เบตเป‰

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบธเปˆเบก: เบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ docker, เบ‚เป‰เบญเบเบˆเบฐเปƒเบŠเป‰เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ S3 เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเป€เบŠเบฑเปˆเบ™ google drive / dropbox.

Docker เปƒเบ™ CI

เบšเปเบฅเบดเบชเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบซเป‰เบ‡. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบ™เบถเปˆเบ‡, เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบซเบ™เบถเปˆเบ‡ stack (เบ”เบต, เบšเบฒเบ‡เบ—เบตเบชเบญเบ‡เบซเบผเบทเบชเบฒเบกเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก).

เบšเปเบฅเบดเบชเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบŠเป‰ docker เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ—เบตเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ CI เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™. เบ„เปเบฒเบ–เบฒเบก: เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™ docker container เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™? เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบˆเบถเปˆเบ‡เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเบฐเบเบฝเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เบฝเบ™ Ansible playbook เบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ‚เบญเบ‡ nodejs, php, jdk, เบ„เบฑเบ”เบฅเบญเบ ssh keys, เปเบฅเบฐเบญเบทเปˆเบ™เป†เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™?

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบเบดเบ‡เบ•เบปเบ™เป€เบญเบ‡เบขเบนเปˆเปƒเบ™เบ•เบตเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒ docker เบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเป€เบญเบปเบฒเบเปเบฒเป„เบฅเปƒเบ”เป†เบเบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบกเบฑเบ™. เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบžเบปเบšเบเบฑเบš CI เปƒเบ™ docker:

  • เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเบšเบžเบฒเบš docker เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบฎเบนเบšเบžเบฒเบšเบซเบผเบทเบ‚เบฝเบ™ dockerfile เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡.
  • 90% เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบšเบฒเบ‡เบ›เบธเปˆเบก ssh, เบ‚เปเป‰เบกเบนเบ™เบฅเบฑเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เปƒเบชเปˆเบฎเบนเบšเบžเบฒเบš docker.
  • เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปเบฅเบฐเบ•เบฒเบ, เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบชเบนเบ™เป€เบชเบเป„เบ›เบžเป‰เบญเบกเบเบฑเบšเบกเบฑเบ™. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ•เปเปˆเป„เบ›เบˆเบฐเบ”เบฒเบงเป‚เบซเบฅเบ”เบ„เบทเบ™เปƒเบซเบกเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบœเบปเบ™, เปเบฅเบฐเป€เบงเบฅเบฒเปเบกเปˆเบ™เป€เบ‡เบดเบ™.

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™ docker containers (เบ‚เป‰เบญเบเป€เบ„เบตเบเป€เบ›เบฑเบ™เปเบŸเบ™, เปเบ—เป‰เป†, เบ‚เป‰เบญเบเบฎเบนเป‰เบชเบถเบเป€เบชเบเปƒเบˆเบเบฑเบšเบ•เบปเบงเป€เบญเบ‡เปƒเบ™เบญเบฐเบ”เบตเบ” xD). เปƒเบ™ java เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบกเบตเบซเบฅเบฒเบเบฎเบธเปˆเบ™เปเบฅเบฐเบ›เปˆเบฝเบ™เบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ”เบฝเบงเบเบฑเบšเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบกเบฑเบ™เบ„เบทเบเบฑเบ™เปƒเบ™ nodejs, เบกเบต nvm.

เบชเบฐเบซเบฅเบธเบš

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบŠเบทเปˆเบญเบงเปˆเบฒ docker เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบกเบฑเบ™ (เบชเบฝเบ‡เปเบ›เบ, เปเบกเปˆเบ™). เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™, เบšเปเบฅเบดเบชเบฑเบ”เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เปเปˆเป„เบ”เป‰เบ‡เปˆเบฒเบเปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบตเบ”เบ•เบปเบงเบšเบฑเบ™เบˆเบธเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบšเบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบซเบผเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ CI เปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบ—เบตเบกเบ‡เบฒเบ™ DevOps เบเปเบฒเบฅเบฑเบ‡เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเบฑเบ™เบˆเบธเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เปƒเบŠเป‰ docker เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบตเบ” เบซเบผเป‰เบฒเบชเบธเบ” เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบขเปˆเบฒเบฅเบฒเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบกเบฑเบ™เบˆเบฐเบšเปเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบฅเบฒเบงเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบเป‰เบฒเบเบšเบฑเบ™เบซเบฒเป„เบ›เบชเบนเปˆเบฅเบฐเบ”เบฑเบšเบญเบทเปˆเบ™เปเบฅเบฐเบชเบฐเป€เบซเบ™เบตเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

เป€เบกเบทเปˆเบญ docker เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™: เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบฐเบซเบผเบธเบšเบงเปˆเบฒ docker เปเบกเปˆเบ™เบ”เบตเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰ docker, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™:

  • เบˆเบฐเบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบ—เบตเปˆเบชเบธเบ”
  • เบขเปˆเบฒเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบŠเป‰ docker
  • เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเบšเปˆเบญเบ™เบ”เบฝเบง, เบขเปˆเบฒเปเบœเปˆเบกเบฑเบ™เป„เบ›เบ—เบปเปˆเบงเบ—เบธเบ Dockefile เปเบฅเบฐ docker-compose repositories

PS:

เบ‚เปโ€‹เบ‚เบญเบšโ€‹เปƒเบˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ‚เปโ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบ—เบตเปˆโ€‹เป‚เบ›เปˆเบ‡โ€‹เปƒเบชโ€‹เปƒเบ™โ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เปเบฅเบฐโ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹เปƒเบ™โ€‹เบกเบทเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™