เบเบนเปเบเบฝเบเบเบญเบเบเบปเบเบเบงเบฒเบก, เบเบฒเบเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเบตเบเปเบเปเปเบเบกเบทเปเบเบตเป, เบเบญเบเบงเปเบฒเบกเบฑเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบฎเบฝเบเบฎเบนเป Docker Compose เปเบฅเบฐเบเปเบฒเบฅเบฑเบเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบตเบเปเบงเบตเบฅเบนเบเบเปเบฒเบเปเบฒเบญเบดเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบเปเบเป Docker. เบกเบฑเบเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบนเปเบญเปเบฒเบเบเบญเบเปเบญเบเบฐเบชเบฒเบเบเบตเปเปเบกเปเบเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบทเปเบเบเบฒเบเบเบญเบ Docker. เบเปเบฒเบซเบฒเบเบงเปเบฒเบเบตเปเบเปเปเปเบกเปเบเบเปเบฅเบฐเบเบต, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบงเบฅเบฒเปเบเบดเปเบ
Docker Compose เปเบกเปเบเบซเบเบฑเบ?
Docker Compose เปเบกเปเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบฅเบงเบกเบขเบนเปเปเบ Docker. เบกเบฑเบเปเบเปเบเบทเบเบญเบญเบเปเบเบเปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบเบเบฒเบ.
เปเบเบเบฐเบเบฐเบเบตเปเบฎเบฝเบเบฎเบนเปเบเบทเปเบเบเบฒเบเบเบญเบ Docker, เบเปเบฒเบเบญเบฒเบเบเบฐเปเบเปเบเบปเบเบเบฑเบเบเบฒเบเบชเปเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเปเปเบเบถเปเบเบเบฑเบ, เบเบปเบงเบขเปเบฒเบ, เปเบเปเบซเบผเปเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบเบซเบผเบทเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฒเบเบขเปเบฒเบ. เปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบซเบฒเบเบฒเบ. เปเบเบเบเบฒเบเบเบตเปเปเบเปเบเบดเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบฐเบเบญเบเบเปเบงเบเบเบธเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบเบซเบกเบปเบเปเบฎเบฑเบเบงเบฝเบเบฎเปเบงเบกเบเบฑเบ.
เปเบเบปเปเบฒเบฎเบนเปเปเบเปเปเบเบงเปเบเบงเปเบฒเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบเปเบเป Docker Compose เปเบกเบทเปเบญเบเบณเปเบเปเปเบเบเบเบฒเบ? เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบฑเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ. เบเปเบฒเบเปเบฒเบเปเบเปเบซเบผเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเปเบเบเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Docker Compose เบญเบฒเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบ. เบเบปเบงเบขเปเบฒเบ, เปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบเบงเบเปเบเบปเบฒเบชเปเบฒเบเปเบงเบฑเบเปเบเบเปเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเปเบเบทเปเบญเบเบงเบเบชเบญเบเบเบนเปเปเบเป. เปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒเบงโเบญเบฒเบโเบเบฐโเบเบฐโเบเบญเบโเบเปเบงเบโเบชเบญเบโเบเปโเบฅเบดโเบเบฒเบ - เบซเบเบถเปเบโเบเบตเปโเบฎเบฑเบโเบเบฐโเบเบฑเบโเบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบญเบโเปเบงเบฑเบโเปเบโเปเบเปโ, เปเบฅเบฐโเบซเบเบถเปเบโเบเบตเปโเบกเบตโเบเบงเบฒเบกโเบฎเบฑเบโเบเบดเบโเบเบญเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบฎเบฑเบโเบชเบฒโเบเบฒเบโเบเปเปโเบกเบนเบโ.
เปเบเบเปเบเปเบฅเบเบต Docker Compose, เปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบกเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบ, เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเบเปเบฅเบดเบเบฒเบเบซเบผเบฒเบเบขเปเบฒเบเบเปเบงเบเบเปเบฒเบชเบฑเปเบเบเบฝเบง.
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบ Docker เปเบฅเบฐ Docker Compose
Docker เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบฑเบเบเบธเบชเปเบงเบเบเบธเบเบเบปเบ (เบเบฒเบเบเปเบฅเบดเบเบฒเบ) เบเบตเปเบเบฐเบเบญเบเปเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ.
Docker Compose เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบญเบกเบเบฑเบเบเบฑเบเบเบฒเบเบซเบผเบฒเบเบเบฑเบเบเบธเบเบตเปเบเบฐเบเบญเบเปเบเบฑเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เปเบเบทเปเบญเบเบกเบทเบเบตเปเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบฝเบงเบเบฑเบเบเบฑเบ Docker, เปเบเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ.
Docker (เบเบฑเบเบเบฝเบง) เปเบฅเบฐ Docker Compose (เบซเบผเบฒเบเบเบฑเบเบเบธ)
เบเปเบฅเบฐเบเบตเบเบฒเบเบเปเบฒเปเบเปเบเบปเปเบงเปเบเบชเปเบฒเบฅเบฑเบ Docker Compose
Docker Compose เปเบกเปเบ, เปเบเบกเบทเบเบตเปเบเบทเบเบเปเบญเบ, เปเบเบฑเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบกเบตเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเบขเปเบฒเบเปเบงเบงเบฒ. เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบดเบเบเบญเบ Docker Compose, เบเบฒเบเบงเบดเปเบเบฒเบฐเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเปเบกเบตเบเบเบปเบเบเบฐเปเบซเบเบเบเบตเปเบเบฒเบเปเบเป Docker Compose เบเบฐเปเบซเปเบเปเบฒเบ.
เบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒเบเปเบฒเบเปเบเบฑเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเปเบเบเบเบฒเบเปเบงเบฑเบ. เปเบเบเบเบฒเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบชเบญเบเปเบงเบฑเบเปเบเบเป. เบเปเบฒเบญเบดเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฑเบเบเบธเบฅเบฐเบเบดเบเบชเปเบฒเบเบฎเปเบฒเบเบเปเบฒเบญเบญเบเปเบฅเบเปเบเปเบงเบเบเบฒเบเบเบฅเบดเบเบเบฝเบเปเบเปเบชเบญเบเบชเบฒเบกเบเบฑเปเบ. เบญเบฑเบเบเบตเบชเบญเบเปเบกเปเบเปเบเปเบชเปเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบฅเบนเบเบเปเบฒ. เบเบฑเบเบชเบญเบเบชเบฐเบเบฒเบเบเบตเปเบเบตเปเบเบปเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบฝเบงเบเบฑเบ.
เปเบเบโเบเบฒเบโเบเบญเบโเบเปเบฒเบโเปเบเปโเบเบฒเบโเปเบเบฑเบโเบเบตเปโเบเบดโเบเบปเบกโเบซเบผเบฒเบโเบเบถเปเบโ, เปเบฅเบฐโเบกเบฑเบโเบซเบฑเบโเบญเบญเบโเบงเปเบฒโเบเบฐโเบฅเบฑเบโเบเบฒเบโเบเบญเบโเปเบเบทเปเบญเบโเปเบกเปโเบเปเบฒเบโเบเบตเปโเบกเบฑเบโเปเบฅเปเบโเปเบกเปเบโเบเปเปโเบเบฝเบโเบเปโเบเปเปโเปเบโเบญเบตเบโเปเบฅเปเบงโ. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบเบฑเบเบชเบดเบเปเบเบเปเบฒเบเปเบเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบซเบฒเปเบเบทเปเบญเบเบญเบทเปเบ.
เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเปเบฒเบเบเปเปเปเบเปเปเบเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ Docker Compose. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบญเบเปเบฅเบฐ configure เบเบฒเบเบเปเบฅเบดเบเบฒเบเบซเบเบถเปเบเบเบฑเปเบ, เบซเบงเบฑเบเบงเปเบฒเบเปเบฒเบเบเบฐเบเปเปเบฅเบทเบกเบซเบเบฑเบเปเบเบเบฐเบเบงเบเบเบฒเบ.
เบเปเบฒเบเปเบฒเบเปเบเป Docker Compose, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบซเบกเปเปเบกเปเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบญเบเบชเบฒเบกเบเปเบฒเบชเบฑเปเบ. เปเบเบทเปเบญเปเบซเปเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเปเบญเบเปเบเบเบเบฒเบเปเบเบซเบฒเบชเบฐเบเบฒเบเบเบตเปเปเบซเบกเป, เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเปเบฎเบฑเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบญเบฑเบเปเบซเบฅเบเบชเปเบฒเปเบเบปเบฒเบชเปเบฒเบฎเบญเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบซเบกเป.
เบเบฑเบเบเบฐเบเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบตเบเปเบงเบตเปเบเบเปเบเป Docker Compose
เบเบญเบเบเบตเปเปเบเบปเปเบฒเบฎเบนเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป Docker Compose เบชเปเบฒเบฅเบฑเบเบซเบเบฑเบ, เบกเบฑเบเปเบกเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบตเบเปเบงเบตเบฅเบนเบเบเปเบฒเบเปเบฒเบญเบดเบเบเบญเบเบเปเบฒเบเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบตเป. เบเบท, เบเบงเบเปเบฎเบปเบฒเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบงเบฑเบเปเบเบเปเบเบฐเบซเบเบฒเบเบเปเบญเบ (เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ) เปเบ Python เบเบตเปเบชเบฒเบกเบฒเบเบญเบญเบเปเบเบฅเปเบเบตเปเบกเบตเบเบดเปเบเบชเปเบงเบเบเบญเบเบเปเปเบเบงเบฒเบก. เปเบเบฅเปเบเบตเปเบเบทเบเบฎเปเบญเบเบเปเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเบเปเบเบเบเบฒเบ (เบฅเบนเบเบเปเบฒ), เบเบฝเบเปเบ Python. เบซเบผเบฑเบเบเบฒเบเปเบเปเบฎเบฑเบเปเบเบฅเปเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เปเบเบเบเบฒเบเบชเบฐเปเบเบเบเปเปเบเบงเบฒเบกเบเบตเปเปเบเบฑเบเปเบงเปเปเบเบกเบฑเบเปเบเบซเบเปเบฒเบเป.
เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเบกเบตเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเบทเปเบเบเบฒเบเบเปเบฝเบงเบเบฑเบ Docker เปเบฅเบฐเบงเปเบฒเบเปเบฒเบเบกเบตเปเบงเบเบต Docker เบเบดเบเบเบฑเปเบเปเบฅเปเบง.
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฎเบฑเบเบงเบฝเบเบเปเบฝเบงเบเบฑเบเปเบเบเบเบฒเบ.
โ1. เบเบฒเบเบชเปเบฒเบเปเบเบเบเบฒเบ
เปเบเบทเปเบญเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบฅเบนเบเบเปเบฒ / เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเปเบฒเบญเบดเบเบเบญเบเบเปเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบเปเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบเบชเปเบฒเบเปเบเปเบเบตเปเบเบเบเบฒเบ. เบกเบฑเบเบเบงเบเบเบฐเบกเบตเปเบเบฅเป เปเบฅเบฐเปเบเบเปเบเบตเบเปเปเปเบเบเบตเป:
- เปเบญเบเบฐเบชเบฒเบ
docker-compose.yml
. เบเบตเปเปเบกเปเบเปเบเบฅเป Docker Compose เบเบตเปเบเบฐเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ เปเบฅเบฐเบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ. - เปเบเปเบก
server
. เบกเบฑเบเบเบฐเบกเบตเปเบเบฅเปเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบฎเบฑเบเบชเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฎเบฑเบเบงเบฝเบ. - เปเบเปเบก
client
. เปเบเบฅเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบฅเบนเบเบเปเบฒเบเบฐเบเบฑเปเบเบขเบนเปเบเบตเปเบเบตเป.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเปเบเบเบญเบเปเบเบเปเบเบตเบซเบผเบฑเบเบเบญเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเบเบงเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบตเป:
.
โโโ client/
โโโ docker-compose.yml
โโโ server/
2 directories, 1 file
โ2. เบเบฒเบเบชเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ
เบเบตเปเบเบตเป, เปเบเบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบฑเบเบเบฑเบเบเบฒเบเบชเบดเปเบเบเบทเปเบเบเบฒเบเบเปเบฝเบงเบเบฑเบ Docker.
2 เบ. เบเบฒเบเบชเปเบฒเบเปเบเบฅเป
เปเบเบเบตเปเปเบเบเปเบเบต server
เปเบฅเบฐเบชเปเบฒเบเปเบเบฅเปเบเปเปเปเบเบเบตเปเบขเบนเปเปเบเบกเบฑเบ:
- เปเบญเบเบฐเบชเบฒเบ
server.py
. เบกเบฑเบเบเบฐเบกเบตเบฅเบฐเบซเบฑเบเปเบเบตเบเปเบงเบต. - เปเบญเบเบฐเบชเบฒเบ
index.html
. เปเบเบฅเปเบเบตเปเบเบฐเบกเบตเบชเปเบงเบเบเบญเบเบเปเปเบเบงเบฒเบกเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบฅเบนเบเบเปเบฒเบเบงเบเบชเบปเปเบเบญเบญเบ. - เปเบญเบเบฐเบชเบฒเบ
Dockerfile
. เบเบตเปเปเบกเปเบเปเบเบฅเป Docker เบเบตเปเบเบฐเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบชเปเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเปเบเบทเปเบญเปเบเบเบญเบเปเบเบเปเบเบตเบเบญเบเบเปเบฒเบเบเบงเบเบเบฐเปเบเบฑเบเบเบท server/
:
.
โโโ Dockerfile
โโโ index.html
โโโ server.py
0 directories, 3 files
2 เบ. เบเบฒเบเปเบเปเปเบเปเบเบฅเป Python.
เปเบเบตเปเบกเปเบชเปเปเบเบฅเป server.py
เบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป:
#!/usr/bin/env python3
# ะะผะฟะพัั ัะธััะตะผะฝัั
ะฑะธะฑะปะธะพัะตะบ python.
# ะญัะธ ะฑะธะฑะปะธะพัะตะบะธ ะฑัะดัั ะธัะฟะพะปัะทะพะฒะฐัััั ะดะปั ัะพะทะดะฐะฝะธั ะฒะตะฑ-ัะตัะฒะตัะฐ.
# ะะฐะผ ะฝะต ะฝัะถะฝะพ ัััะฐะฝะฐะฒะปะธะฒะฐัั ััะพ-ัะพ ะพัะพะฑะตะฝะฝะพะต, ััะธ ะฑะธะฑะปะธะพัะตะบะธ ัััะฐะฝะฐะฒะปะธะฒะฐัััั ะฒะผะตััะต ั Python.
import http.server
import socketserver
# ะญัะฐ ะฟะตัะตะผะตะฝะฝะฐั ะฝัะถะฝะฐ ะดะปั ะพะฑัะฐะฑะพัะบะธ ะทะฐะฟัะพัะพะฒ ะบะปะธะตะฝัะฐ ะบ ัะตัะฒะตัั.
handler = http.server.SimpleHTTPRequestHandler
# ะขัั ะผั ัะบะฐะทัะฒะฐะตะผ, ััะพ ัะตัะฒะตั ะผั ั
ะพัะธะผ ะทะฐะฟัััะธัั ะฝะฐ ะฟะพััะต 1234.
# ะะพััะฐัะฐะนัะตัั ะทะฐะฟะพะผะฝะธัั ััะธ ัะฒะตะดะตะฝะธั, ัะฐะบ ะบะฐะบ ะพะฝะธ ะฝะฐะผ ะพัะตะฝั ะฟัะธะณะพะดัััั ะฒ ะดะฐะปัะฝะตะนัะตะผ, ะฟัะธ ัะฐะฑะพัะต ั docker-compose.
with socketserver.TCPServer(("", 1234), handler) as httpd:
# ะะปะฐะณะพะดะฐัั ััะพะน ะบะพะผะฐะฝะดะต ัะตัะฒะตั ะฑัะดะตั ะฒัะฟะพะปะฝััััั ะฟะพััะพัะฝะฝะพ, ะพะถะธะดะฐั ะทะฐะฟัะพัะพะฒ ะพั ะบะปะธะตะฝัะฐ.
httpd.serve_forever()
เบฅเบฐเบซเบฑเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเปเบเบตเปเบเปเบฒเบเบเบฒเบ. เบฅเบฒเบงเบเบฐเปเบซเปเปเบเบฅเปเบฅเบนเบเบเปเบฒ index.html
, เปเบเบทเปเบญเปเบเบเบตเปเบเปเปเบกเบฒเบเบฐเบเบทเบเบชเบฐเปเบเบเบขเบนเปเปเบเบซเบเปเบฒเปเบงเบฑเบ.
2 เบ. เบเบฒเบเปเบเปเปเบเปเบเบฅเป HTML
เปเบเบทเปเบญเบเบทเปเบ index.html
เปเบเบตเปเบกเบเปเปเบเบงเบฒเบกเบเปเปเปเบเบเบตเป:
Docker-Compose is magic!
เบเปเปเบเบงเบฒเบกเบเบตเปเบเบฐเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบฅเบนเบเบเปเบฒ.
2 เบ. เบเบฒเบเปเบเปเปเบ Dockerfile
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเปเบเบฅเปเบเปเบฒเบเบเบฒเบ Dockerfile
, เบเบนเปเบเบตเปเบเบฐเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก runtime เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Python. เปเบเบฑเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบฎเบนเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบเบถเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเป
# ะะฐ ะฒััะบะธะน ัะปััะฐะน ะฝะฐะฟะพะผะธะฝะฐั, ััะพ Dockerfile ะฒัะตะณะดะฐ ะดะพะปะถะตะฝ ะฝะฐัะธะฝะฐัััั ั ะธะผะฟะพััะฐ ะฑะฐะทะพะฒะพะณะพ ะพะฑัะฐะทะฐ.
# ะะปั ััะพะณะพ ะธัะฟะพะปัะทัะตััั ะบะปััะตะฒะพะต ัะปะพะฒะพ 'FROM'.
# ะะดะตัั ะฝะฐะผ ะฝัะถะฝะพ ะธะผะฟะพััะธัะพะฒะฐัั ะพะฑัะฐะท python (ั DockerHub).
# ะ ัะตะทัะปััะฐัะต ะผั, ะฒ ะบะฐัะตััะฒะต ะธะผะตะฝะธ ะพะฑัะฐะทะฐ, ัะบะฐะทัะฒะฐะตะผ 'python', ะฐ ะฒ ะบะฐัะตััะฒะต ะฒะตััะธะธ - 'latest'.
FROM python:latest
# ะะปั ัะพะณะพ ััะพะฑั ะทะฐะฟัััะธัั ะฒ ะบะพะฝัะตะนะฝะตัะต ะบะพะด, ะฝะฐะฟะธัะฐะฝะฝัะน ะฝะฐ Python, ะฝะฐะผ ะฝัะถะฝะพ ะธะผะฟะพััะธัะพะฒะฐัั ัะฐะนะปั 'server.py' ะธ 'index.html'.
# ะะปั ัะพะณะพ ััะพะฑั ััะพ ัะดะตะปะฐัั, ะผั ะธัะฟะพะปัะทัะตะผ ะบะปััะตะฒะพะต ัะปะพะฒะพ 'ADD'.
# ะะตัะฒัะน ะฟะฐัะฐะผะตัั, 'server.py', ะฟัะตะดััะฐะฒะปัะตั ัะพะฑะพะน ะธะผั ัะฐะนะปะฐ, ั
ัะฐะฝััะตะณะพัั ะฝะฐ ะบะพะผะฟัััะตัะต.
# ะัะพัะพะน ะฟะฐัะฐะผะตัั, '/server/', ััะพ ะฟััั, ะฟะพ ะบะพัะพัะพะผั ะฝัะถะฝะพ ัะฐะทะผะตััะธัั ัะบะฐะทะฐะฝะฝัะน ัะฐะนะป ะฒ ะพะฑัะฐะทะต.
# ะะดะตัั ะผั ะฟะพะผะตัะฐะตะผ ัะฐะนะป ะฒ ะฟะฐะฟะบั ะพะฑัะฐะทะฐ '/server/'.
ADD server.py /server/
ADD index.html /server/
# ะะดะตัั ะผั ะฒะพัะฟะพะปัะทัะตะผัั ะบะพะผะฐะฝะดะพะน 'WORKDIR', ะฒะพะทะผะพะถะฝะพ, ะฝะพะฒะพะน ะดะปั ะฒะฐั.
# ะะฝะฐ ะฟะพะทะฒะพะปัะตั ะธะทะผะตะฝะธัั ัะฐะฑะพััั ะดะธัะตะบัะพัะธั ะพะฑัะฐะทะฐ.
# ะ ะบะฐัะตััะฒะต ัะฐะบะพะน ะดะธัะตะบัะพัะธะธ, ะฒ ะบะพัะพัะพะน ะฑัะดัั ะฒัะฟะพะปะฝััััั ะฒัะต ะบะพะผะฐะฝะดั, ะผั ัััะฐะฝะฐะฒะปะธะฒะฐะตะผ '/server/'.
WORKDIR /server/
เบเบญเบเบเบตเปเปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบฅเบนเบเบเปเบฒ.
โ3. เบเบฒเบเบชเปเบฒเบเบฅเบนเบเบเปเบฒ
เปเบเบเบฐเบเบฐเบเบตเปเบชเปเบฒเบเบเปเบฒเบเบฅเบนเบเบเปเบฒเบเบญเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบทเปเบเปเบฒเบเบทเปเบเบเบฒเบ Docker เบเบฒเบเบขเปเบฒเบเบเบฒเบกเบเบฒเบ.
3 เบ. เบเบฒเบเบชเปเบฒเบเปเบเบฅเป
เปเบเบเบตเปเปเบเบเปเบเบตเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบ client
เปเบฅเบฐเบชเปเบฒเบเปเบเบฅเปเบเปเปเปเบเบเบตเปเบขเบนเปเปเบเบกเบฑเบ:
- เปเบญเบเบฐเบชเบฒเบ
client.py
. เบฅเบฐเบซเบฑเบเบฅเบนเบเบเปเบฒเบเบฐเบเบฑเปเบเบขเบนเปเบเบตเปเบเบตเป. - เปเบญเบเบฐเบชเบฒเบ
Dockerfile
. เปเบเบฅเปเบเบตเปเบกเบตเบเบปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบเบฑเบเปเบเบฅเปเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเปเบเปเบเบเปเบเบตเปเบเบตเบเปเบงเบต. เบเบท, เบกเบฑเบเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบเบฅเบนเบเบเปเบฒ.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบเปเบเบตเบเบญเบเบเปเบฒเบ client/
เปเบเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป, เบกเบฑเบเบเบงเบเบเบฐเปเบเบฑเบเปเบเบฑเปเบเบเบตเป:
.
โโโ client.py
โโโ Dockerfile
0 directories, 2 files
3 เบ. เบเบฒเบเปเบเปเปเบเปเบเบฅเป Python
เปเบเบตเปเบกเปเบชเปเปเบเบฅเป client.py
เบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป:
#!/usr/bin/env python3
# ะะผะฟะพััะธััะตะผ ัะธััะตะผะฝัั ะฑะธะฑะปะธะพัะตะบั Python.
# ะะฝะฐ ะธัะฟะพะปัะทัะตััั ะดะปั ะทะฐะณััะทะบะธ ัะฐะนะปะฐ 'index.html' ั ัะตัะฒะตัะฐ.
# ะะธัะตะณะพ ะพัะพะฑะตะฝะฝะพะณะพ ัััะฐะฝะฐะฒะปะธะฒะฐัั ะฝะต ะฝัะถะฝะพ, ััะฐ ะฑะธะฑะปะธะพัะตะบะฐ ัััะฐะฝะฐะฒะปะธะฒะฐะตััั ะฒะผะตััะต ั Python.
import urllib.request
# ะญัะฐ ะฟะตัะตะผะตะฝะฝะฐั ัะพะดะตัะถะธั ะทะฐะฟัะพั ะบ 'http://localhost:1234/'.
# ะะพะทะผะพะถะฝะพ, ัะตะนัะฐั ะฒั ะทะฐะดะฐััะตัั ะฒะพะฟัะพัะพะผ ะพ ัะพะผ, ััะพ ัะฐะบะพะต 'http://localhost:1234'.
# localhost ัะบะฐะทัะฒะฐะตั ะฝะฐ ัะพ, ััะพ ะฟัะพะณัะฐะผะผะฐ ัะฐะฑะพัะฐะตั ั ะปะพะบะฐะปัะฝัะผ ัะตัะฒะตัะพะผ.
# 1234 - ััะพ ะฝะพะผะตั ะฟะพััะฐ, ะบะพัะพััะน ะฒะฐะผ ะฟัะตะดะปะฐะณะฐะปะพัั ะทะฐะฟะพะผะฝะธัั ะฟัะธ ะฝะฐัััะพะนะบะต ัะตัะฒะตัะฝะพะณะพ ะบะพะดะฐ.
fp = urllib.request.urlopen("http://localhost:1234/")
# 'encodedContent' ัะพะพัะฒะตัััะฒัะตั ะทะฐะบะพะดะธัะพะฒะฐะฝะฝะพะผั ะพัะฒะตัั ัะตัะฒะตัะฐ ('index.html').
# 'decodedContent' ัะพะพัะฒะตัััะฒัะตั ัะฐัะบะพะดะธัะพะฒะฐะฝะฝะพะผั ะพัะฒะตัั ัะตัะฒะตัะฐ (ััั ะฑัะดะตั ัะพ, ััะพ ะผั ั
ะพัะธะผ ะฒัะฒะตััะธ ะฝะฐ ัะบัะฐะฝ).
encodedContent = fp.read()
decodedContent = encodedContent.decode("utf8")
# ะัะฒะพะดะธะผ ัะพะดะตัะถะธะผะพะต ัะฐะนะปะฐ, ะฟะพะปััะตะฝะฝะพะณะพ ั ัะตัะฒะตัะฐ ('index.html').
print(decodedContent)
# ะะฐะบััะฒะฐะตะผ ัะพะตะดะธะฝะตะฝะธะต ั ัะตัะฒะตัะพะผ.
fp.close()
เบเปเบงเบเบฅเบฐเบซเบฑเบเบเบตเป, เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบฅเบนเบเบเปเบฒเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบฅเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเบชเบฐเปเบเบเบกเบฑเบเบขเบนเปเปเบเบซเบเปเบฒเบเป.
3 เบ. เบเบฒเบเปเบเปเปเบ Dockerfile
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเปเบฅเบฐเบเบตเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเปเบฒเบเบเบฒเบ Dockerfile
, เบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบชเปเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบฅเบนเบเบเปเบฒ Python เบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ. เบเบตเปเปเบกเปเบเบฅเบฐเบซเบฑเบเบฅเบนเบเบเปเบฒ Dockerfile
:
# ะขะพ ะถะต ัะฐะผะพะต, ััะพ ะธ ะฒ ัะตัะฒะตัะฝะพะผ Dockerfile.
FROM python:latest
# ะะผะฟะพััะธััะตะผ 'client.py' ะฒ ะฟะฐะฟะบั '/client/'.
ADD client.py /client/
# ะฃััะฐะฝะฐะฒะปะธะฒะฐะตะผ ะฒ ะบะฐัะตััะฒะต ัะฐะฑะพัะตะน ะดะธัะตะบัะพัะธะธ '/client/'.
WORKDIR /client/
โ4. Docker เบเบฝเบ
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบญเบฒเบเบเบฐเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบเบชเบญเบเปเบเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ: เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเบฅเบนเบเบเปเบฒ. เปเบเปเบฅเบฐเบเบปเบเบกเบตเปเบเบฅเปเบเบญเบเบเบปเบเปเบญเบ Dockerfile
. เบกเบฒเบฎเบญเบเบเบฐเบเบธ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเปเบเบตเบเบเบถเปเบเบเปเปเปเบเปเปเบเบเบญเบเปเบซเบเบทเบญเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Docker. เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ Docker Compose. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบซเปเปเบเบเบตเปเปเบเบฅเป docker-compose.yml
, เบเบฑเปเบเบขเบนเปเปเบเปเบเปเบเบตเบฎเบฒเบเปเบเบเบเบฒเบ.
เบเบฐโเบฅเบธโเบเบฒโเบชเบฑเบโเปเบเบโเบงเปเบฒโเปเบโเบเบตเปโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเปเปโเปเบเปโเบเบฐโเบเบฒโเบเบฒเบกโเบเบตเปโเบเบฐโเบเบงเบกโเปเบญเบปเบฒโเบขเปเบฒเบโเปเบเปโเบเบดเบโเบเปเบฒโเบชเบฑเปเบโเบเบฑเบโเบซเบกเบปเบโเบเบตเปโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเปเบ docker-compose.yml
. เปเบเบปเปเบฒเบซเบกเบฒเบเบเบปเปเบเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเปเบเบทเปเบญเบเปเบฒเบเบเปเบฒเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบฐเปเบซเปเบเปเบฒเบเบกเบตเบเบงเบฒเบกเบฎเบนเปเบเบทเปเบเบเบฒเบเบเบญเบ Docker Compose.
เบเบตเปเปเบกเปเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฐเปเบชเปเปเบเปเบเบฅเป docker-compose.yml
:
# ะคะฐะนะป docker-compose ะดะพะปะถะตะฝ ะฝะฐัะธะฝะฐัััั ั ัะตะณะฐ ะฒะตััะธะธ.
# ะั ะธัะฟะพะปัะทัะตะผ "3" ัะฐะบ ะบะฐะบ ััะพ - ัะฐะผะฐั ัะฒะตะถะฐั ะฒะตััะธั ะฝะฐ ะผะพะผะตะฝั ะฝะฐะฟะธัะฐะฝะธั ััะพะณะพ ะบะพะดะฐ.
version: "3"
# ะกะปะตะดัะตั ััะธััะฒะฐัั, ััะพ docker-composes ัะฐะฑะพัะฐะตั ั ัะตัะฒะธัะฐะผะธ.
# 1 ัะตัะฒะธั = 1 ะบะพะฝัะตะนะฝะตั.
# ะกะตัะฒะธัะพะผ ะผะพะถะตั ะฑััั ะบะปะธะตะฝั, ัะตัะฒะตั, ัะตัะฒะตั ะฑะฐะท ะดะฐะฝะฝัั
...
# ะ ะฐะทะดะตะป, ะฒ ะบะพัะพัะพะผ ะฑัะดัั ะพะฟะธัะฐะฝั ัะตัะฒะธัั, ะฝะฐัะธะฝะฐะตััั ั 'services'.
services:
# ะะฐะบ ัะถะต ะฑัะปะพ ัะบะฐะทะฐะฝะพ, ะผั ัะพะฑะธัะฐะตะผัั ัะพะทะดะฐัั ะบะปะธะตะฝััะบะพะต ะธ ัะตัะฒะตัะฝะพะต ะฟัะธะปะพะถะตะฝะธั.
# ะญัะพ ะพะทะฝะฐัะฐะตั, ััะพ ะฝะฐะผ ะฝัะถะฝะพ ะดะฒะฐ ัะตัะฒะธัะฐ.
# ะะตัะฒัะน ัะตัะฒะธั (ะบะพะฝัะตะนะฝะตั): ัะตัะฒะตั.
# ะะฐะทะฒะฐัั ะตะณะพ ะผะพะถะฝะพ ัะฐะบ, ะบะฐะบ ะฝัะถะฝะพ ัะฐะทัะฐะฑะพััะธะบั.
# ะะพะฝััะฝะพะต ะฝะฐะทะฒะฐะฝะธะต ัะตัะฒะธัะฐ ะฟะพะผะพะณะฐะตั ะพะฟัะตะดะตะปะธัั ะตะณะพ ัะพะปั.
# ะะดะตัั ะผั, ะดะปั ะธะผะตะฝะพะฒะฐะฝะธั ัะพะพัะฒะตัััะฒัััะตะณะพ ัะตัะฒะธัะฐ, ะธัะฟะพะปัะทัะตะผ ะบะปััะตะฒะพะต ัะปะพะฒะพ 'server'.
server:
# ะะปััะตะฒะพะต ัะปะพะฒะพ "build" ะฟะพะทะฒะพะปัะตั ะทะฐะดะฐัั
# ะฟััั ะบ ัะฐะนะปั Dockerfile, ะบะพัะพััะน ะฝัะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะดะปั ัะพะทะดะฐะฝะธั ะพะฑัะฐะทะฐ,
# ะบะพัะพััะน ะฟะพะทะฒะพะปะธั ะทะฐะฟัััะธัั ัะตัะฒะธั.
# ะะดะตัั 'server/' ัะพะพัะฒะตัััะฒัะตั ะฟััะธ ะบ ะฟะฐะฟะบะต ัะตัะฒะตัะฐ,
# ะบะพัะพัะฐั ัะพะดะตัะถะธั ัะพะพัะฒะตัััะฒัััะธะน Dockerfile.
build: server/
# ะะพะผะฐะฝะดะฐ, ะบะพัะพััั ะฝัะถะฝะพ ะทะฐะฟัััะธัั ะฟะพัะปะต ัะพะทะดะฐะฝะธั ะพะฑัะฐะทะฐ.
# ะกะปะตะดัััะฐั ะบะพะผะฐะฝะดะฐ ะพะทะฝะฐัะฐะตั ะทะฐะฟััะบ "python ./server.py".
command: python ./server.py
# ะัะฟะพะผะฝะธัะต ะพ ัะพะผ, ััะพ ะฒ ะบะฐัะตััะฒะต ะฟะพััะฐ ะฒ 'server/server.py' ัะบะฐะทะฐะฝ ะฟะพัั 1234.
# ะัะปะธ ะผั ั
ะพัะธะผ ะพะฑัะฐัะธัััั ะบ ัะตัะฒะตัั ั ะฝะฐัะตะณะพ ะบะพะผะฟัััะตัะฐ (ะฝะฐั
ะพะดััั ะทะฐ ะฟัะตะดะตะปะฐะผะธ ะบะพะฝัะตะนะฝะตัะฐ),
# ะผั ะดะพะปะถะฝั ะพัะณะฐะฝะธะทะพะฒะฐัั ะฟะตัะตะฝะฐะฟัะฐะฒะปะตะฝะธะต ััะพะณะพ ะฟะพััะฐ ะฝะฐ ะฟะพัั ะบะพะผะฟัััะตัะฐ.
# ะกะดะตะปะฐัั ััะพ ะฝะฐะผ ะฟะพะผะพะถะตั ะบะปััะตะฒะพะต ัะปะพะฒะพ 'ports'.
# ะัะธ ะตะณะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะธ ะฟัะธะผะตะฝัะตััั ัะปะตะดัััะฐั ะบะพะฝััััะบัะธั: [ะฟะพัั ะบะพะผะฟัััะตัะฐ]:[ะฟะพัั ะบะพะฝัะตะนะฝะตัะฐ]
# ะ ะฝะฐัะตะผ ัะปััะฐะต ะฝัะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะฟะพัั ะบะพะผะฟัััะตัะฐ 1234 ะธ ะพัะณะฐะฝะธะทะพะฒะฐัั ะตะณะพ ัะฒัะทั ั ะฟะพััะพะผ
# 1234 ะบะพะฝัะตะนะฝะตัะฐ (ัะฐะบ ะบะฐะบ ะธะผะตะฝะฝะพ ะฝะฐ ััะพั ะฟะพัั ัะตัะฒะตั
# ะพะถะธะดะฐะตั ะฟะพัััะฟะปะตะฝะธั ะทะฐะฟัะพัะพะฒ).
ports:
- 1234:1234
# ะัะพัะพะน ัะตัะฒะธั (ะบะพะฝัะตะนะฝะตั): ะบะปะธะตะฝั.
# ะญัะพั ัะตัะฒะธั ะฝะฐะทะฒะฐะฝ 'client'.
client:
# ะะดะตัั 'client/ ัะพะพัะฒะตัััะฒัะตั ะฟััะธ ะบ ะฟะฐะฟะบะต, ะบะพัะพัะฐั ัะพะดะตัะถะธั
# ัะฐะนะป Dockerfile ะดะปั ะบะปะธะตะฝััะบะพะน ัะฐััะธ ัะธััะตะผั.
build: client/
# ะะพะผะฐะฝะดะฐ, ะบะพัะพััั ะฝัะถะฝะพ ะทะฐะฟัััะธัั ะฟะพัะปะต ัะพะทะดะฐะฝะธั ะพะฑัะฐะทะฐ.
# ะกะปะตะดัััะฐั ะบะพะผะฐะฝะดะฐ ะพะทะฝะฐัะฐะตั ะทะฐะฟััะบ "python ./client.py".
command: python ./client.py
# ะะปััะตะฒะพะต ัะปะพะฒะพ 'network_mode' ะธัะฟะพะปัะทัะตััั ะดะปั ะพะฟะธัะฐะฝะธั ัะธะฟะฐ ัะตัะธ.
# ะขัั ะผั ัะบะฐะทัะฒะฐะตะผ ัะพ, ััะพ ะบะพะฝัะตะนะฝะตั ะผะพะถะตั ะพะฑัะฐัะฐัััั ะบ 'localhost' ะบะพะผะฟัััะตัะฐ.
network_mode: host
# ะะปััะตะฒะพะต ัะปะพะฒะพ 'depends_on' ะฟะพะทะฒะพะปัะตั ัะบะฐะทัะฒะฐัั, ะดะพะปะถะตะฝ ะปะธ ัะตัะฒะธั,
# ะฟัะตะถะดะต ัะตะผ ะทะฐะฟัััะธัััั, ะถะดะฐัั, ะบะพะณะดะฐ ะฑัะดัั ะณะพัะพะฒั ะบ ัะฐะฑะพัะต ะดััะณะธะต ัะตัะฒะธัั.
# ะะฐะผ ะฝัะถะฝะพ, ััะพะฑั ัะตัะฒะธั 'client' ะดะพะถะดะฐะปัั ะฑั ะณะพัะพะฒะฝะพััะธ ะบ ัะฐะฑะพัะต ัะตัะฒะธัะฐ 'server'.
depends_on:
- server
โ5. เบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเบเบฒเบ
เบซเบผเบฑเบโเบเบฒเบโเปเบโ docker-compose.yml
เบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเปเบฒเปเบเบฑเบเบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเบเบเปเบญเบ, เปเบเบเบเบฒเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบเบญเบ. เบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบชเบฑเปเบ docker build
, เปเบเปเบเปเบฒเบชเบฑเปเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบกเปเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเปเบฒเบเบงเบเบซเบเบถเปเบ:
$ docker-compose build
โ6. เปเบเบตเบเบเบปเบงเปเบเบเบเบฒเบ
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบตเปเปเบเบเบเบฒเบเปเบเปเบเบทเบเบเบฐเบเบญเบ, เบกเบฑเบเปเบเบฑเบเปเบงเบฅเบฒเบเบตเปเบเบฐเปเบเบตเบเบเบปเบงเบกเบฑเบ. เบเบฑเปเบเบเบญเบเบเบตเปเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบตเป, เปเบกเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฑเบเบเบธเบชเปเบงเบเบเบธเบเบเบปเบ, เบเปเบฒเบชเบฑเปเบเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ. docker run
:
$ docker-compose up
เบซเบผเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบตเป, เบเปเปเบเบงเบฒเบกเบเบตเปเบฅเบนเบเบเปเบฒเบเบฒเบงเปเบซเบผเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบงเบเบเบฐเบเบฒเบเบปเบเบขเบนเปเปเบ terminal: Docker-Compose is magic!
.
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบฅเปเบง, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเปเบเบญเบเบเบญเบกเบเบดเบงเปเบเบต 1234
เบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเบญเบโเบฅเบนเบโเบเปเบฒโ. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเปเบเบซเบฒเบเบตเปเบขเบนเปเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบญเบเบเปเบฒเบ Docker-Compose is magic!
.
เบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบ
เบเปเปเบซเปเปเบเบดเปเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบฒเบเบญเบฒเบเบเบฐเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Docker Compose.
เบเปเบฒเบชเบฑเปเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบขเบธเบเปเบฅเบฐเบฅเบถเบ containers เปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบเปเบฒเบชเบฑเปเบ docker-compose up
:
$ docker-compose down
เบเปเบฒเบชเบฑเปเบเบเบตเปเบเบดเบกเบเบฑเบเบเบถเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ:
$ docker-compose logs -f [service name]
เบเบปเบงเบขเปเบฒเบ, เปเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฎเบนเบเปเบเบเบเบตเป: $ docker-compose logs -f [service name]
.
เบเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฐเปเบเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฑเบเบเบธ:
$ docker-compose ps
เบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบ container เปเบฅเปเบ:
$ docker-compose exec [service name] [command]
เบเบปเบงเบขเปเบฒเบ, เบกเบฑเบเบญเบฒเบเบเบฐเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเป: docker-compose exec server ls
.
เบเปเบฒเบชเบฑเปเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฐเปเบเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบฎเบนเบเบเบฒเบ:
$ docker-compose images
เบเบปเบเปเบเปเบฎเบฑเบ
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบดเปเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบเปเบเปเบฅเบเบต Docker Compose, เบเบงเบฒเบกเบฎเบนเปเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเบฑเบเปเบเปเบฅเบขเบตเบเบตเปเปเบฅเบฐ, เบเปเบฒเบเปเบญเบเบเบฒเบ, เปเบฅเบตเปเบกเบเบปเปเบเบชเบถเบเบชเบฒเบกเบฑเบเปเบเบเบงเบฒเบกเปเบฅเบดเบเบเบทเปเบกเบญเบตเบ.
เบเปเบฒเบเบเบนเปเบญเปเบฒเบเบเบตเปเบฎเบฑเบเปเบเบ! เปเบเบปเปเบฒเปเบเป Docker Compose เปเบเปเบเบเบเบฒเบเบเบญเบเปเบเบปเปเบฒเบเป?
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com