TL;DR: เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเดฟเดฒเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดเตเดเดเตเดเตเดเตเดเตพ เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เด เดตเดฒเตเดเดจ เดเตเดกเต. เดกเตเดเตเดเดฑเดฟเดจเตเดฑเตเดฏเตเด เดฎเดฑเตเดฑเต เดธเดฎเดพเดจ เดธเดเดตเดฟเดงเดพเดจเดเตเดเดณเตเดเตเดฏเตเด เดเดดเดฟเดตเตเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด.
เดเดฒเตเดฒเดพเด เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดเตเดฑเดฟเดฏ เดเดฐเดฟเดคเตเดฐเด
เดเดฅ
เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฆเตเดฏเดคเตเดคเต เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เดฐเตเดคเดฟ chroot เดเดฃเต. เด เดคเต เดชเตเดฐเดฟเดฒเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด เดเตเตพ เดฑเตเดเตเดเต เดกเดฏเดฑเดเตโเดเดฑเดฟ เดฎเดพเดฑเดฟเดฏเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเดจเตเดจเต - เด เดเตเดเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเต เด เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเดฒเต เดซเดฏเดฒเตเดเดณเดฟเดฒเตเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดเดเตโเดธเดธเต เดเดณเตเดณเต เดเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเต เดเดจเตเดคเดฐเดฟเดเดฎเดพเดฏเดฟ เดฑเตเดเตเดเต เดชเตเดฐเดคเตเดฏเตเดเดพเดตเดเดพเดถเดเตเดเตพ เดจเตฝเดเดฟเดฏเดพเตฝ, เด เดคเดฟเดจเต chroot "เดฐเดเตเดทเดชเตเดชเตเดเดพเดจเตเด" เดชเตเดฐเดงเดพเดจ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเด เดจเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเตเดเดพเดคเต, เดฑเตเดเตเดเต เดกเดฏเดฑเดเตโเดเดฑเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต, เดฎเดฑเตเดฑเต เดเดฑเดตเดฟเดเดเตเดเดณเตเด (เดฑเดพเด, เดชเตเดฐเตเดธเดธเตผ), เด เดคเตเดชเตเดฒเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดเดเตโเดธเดธเตเดธเตเด เดชเดฐเดฟเดฎเดฟเดคเดฎเดฒเตเดฒ.
เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเตเตผเดฃเดฒเดฟเดจเตเดฑเต เดฎเตเดเตเดเดพเดจเดฟเดธเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดฐเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เด เดเตเดคเตเดค เดฐเตเดคเดฟ. เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเดฟเตฝ เด เดฐเตเดคเดฟเดฏเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เดธเดพเดฐเดพเดเดถเด เดเดจเตเดจเตเดคเดจเตเดจเตเดฏเดพเดฃเต - เดจเดฟเดฐเดตเดงเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต, เด เดตเดฏเดฟเตฝ เดเดฐเตเดจเตเดจเตเด เดชเตเดฐเดงเดพเดจ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เด เดคเต เดเตเตผเดฃเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. FreeBSD เดเดฏเดฟเดฒเตเดเตพ, เดธเตเดณเดพเดฐเดฟเดธเต เดธเตเดฃเตเดเตพ, OpenVZ, LXC เดเดจเตเดจเดฟเดต Linux-เดจเตเดณเตเดณเดคเดพเดฃเต. เดกเดฟเดธเตเดเต เดธเตเดชเตเดธเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดฎเดฑเตเดฑเต เดเดฑเดตเดฟเดเดเตเดเดณเตเด เดเดธเตเดฒเตเดทเตป เดเดฑเดชเตเดชเดพเดเตเดเตเดจเตเดจเต; เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด, เดเดฐเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดจเตเด เดชเตเดฐเตเดธเดธเตเดธเตผ เดธเดฎเดฏเด, เดฑเดพเด, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดฌเดพเตปเดกเตโเดตเดฟเดกเตเดคเตเดคเต เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดชเดฐเดฟเดฎเดฟเดคเดฟเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด. chroot-เดจเต เด เดชเตเดเตเดทเดฟเดเตเดเต, เดเดฃเตเดเตเดฏเตโเดจเตผ เดเดชเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต, เดเดพเดฐเดฃเด เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดฒเต เดธเตเดชเตเดชเตผเดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดฒเต เดเดณเตเดณเดเดเตเดเดเตเดเดณเดฟเดฒเตเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเดตเตเดถเดจเดฎเตเดณเตเดณเต, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดพเดฒเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดคเดฏเตเด เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเตเดเดณเตเดเต เดเดชเดฏเตเดเดตเตเด เดเดพเดฐเดฃเด เดเตเตผเดฃเดฒเตเดเดณเตเดเต (เดฒเดฟเดจเดเตเดธเดฟเดจเต เดชเตเดฐเดธเดเตเดคเดฎเดพเดฏ, เดเดฐเต เดชเดฐเดฟเดงเดฟ เดตเดฐเต เดซเตเดฐเตเดฌเดฟเดเดธเตเดกเดฟ), เดเตเตผเดฃเตฝ เดเดธเตเดฒเตเดทเตป เดธเดฟเดธเตเดฑเตเดฑเด "เดฌเตเดฐเตเดเตเดเต เดคเตเดฐเต" เดเตเดฏเตเดฏเดพเดจเตเด เดชเตเดฐเดงเดพเดจ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเด เดจเตเดเดพเดจเตเดฎเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดชเตเดเตเดฏเดฎเดฒเตเดฒ.
เดเดฐเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดฐเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเตฝ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดชเดเดฐเด (เดเดฐเต เดเดจเตเดทเตเดฏเดฒเตเดธเตเดทเตป เดธเดฟเดธเตเดฑเตเดฑเด, เดชเดพเดเตเดเตเดเต เดฎเดพเดจเตเดเตผ เดฎเตเดคเดฒเดพเดฏเดต เดเดชเดฏเตเดเดฟเดเตเดเต), เดจเดฟเดเตเดเตพเดเตเดเต เดเดเตป เดคเดจเตเดจเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดชเตเดฐเดงเดพเดจ เดเดพเดฐเตเดฏเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเต เด เดคเตเดคเดฐเดฎเตเดฐเต เด เดตเดธเดฐเด เดจเตฝเดเตเด เดเดจเตเดจเดคเดพเดฃเต (เดเดตเดถเตเดฏเดฎเดพเดฏ เดฒเตเดฌเตเดฐเดฑเดฟเดเดณเตเดเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเด. เดฎเดฑเตเดฑเต เดซเดฏเดฒเตเดเดณเตเด). เด เดเดถเดฏเด เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดธเตเดกเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเตเตผเดเตเดตเดฒเตเดธเตเดทเดจเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดตเตผเดคเตเดคเดฟเดเตเดเต, เดเดคเดฟเดจเตเดฑเต เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดฎเตเดเดตเตเด เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏ เดชเตเดฐเดคเดฟเดจเดฟเดงเดฟ เดกเตเดเตเดเดฑเดพเดฃเต. เดฎเตเดฎเตเดชเดคเตเดคเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเตเดเตเดคเตเดคเตเดฎเตเดชเตเตพ, เดเตเดเตเดคเตฝ เดซเตเดฒเตเดเตเดธเดฟเดฌเดฟเตพ เดเดธเตเดฒเตเดทเตป เดฎเตเดเตเดเดพเดจเดฟเดธเดเตเดเตพ, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพเดเตเดเดฟเดเดฏเดฟเดฒเตเดณเตเดณ เดตเตเตผเดเตเดตเตฝ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดเตพเดเตเดเตเดณเตเดณ เดฌเดฟเตฝเดฑเตเดฑเต-เดเตป เดชเดฟเดจเตเดคเตเดฃเดฏเตเด เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดฑเตเดฑเตเดฑเตเดฑเต เดเตเดฐเดพเดเตเดเดฟเดเดเตเด, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดงเดพเดฐเดพเดณเด เดซเดฟเดธเดฟเดเตเดเตฝ เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดเตเดเตเดค เด เดจเตเดคเดฐเตเดเตเดทเด เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเดฟเดจเต เดเดพเดฐเดฃเดฎเดพเดฏเดฟ - เดฎเดพเดจเตเดตเตฝ เดฑเดฟเดธเตเดดเตเดธเต เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเต.
เดกเตเดเตเดเตผ
เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดถเดธเตเดคเดฎเดพเดฏ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดธเตเดทเตป เดธเตเดซเตเดฑเตเดฑเตโเดตเตเดฏเตผ เดเดฃเต เดกเตเดเตเดเตผ. Go เดญเดพเดทเดฏเดฟเตฝ เดเดดเตเดคเดฟเดฏเดคเต, เดเดคเต เดฒเดฟเดจเดเตเดธเต เดเตเตผเดฃเดฒเดฟเดจเตเดฑเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดซเตเดเตเดเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต - cgroups, namespaces, capabilities, etc., เด เดคเตเดชเตเดฒเต Aufs เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเด เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเด เดกเดฟเดธเตเดเต เดธเตเดชเตเดธเต เดฒเดพเดญเดฟเดเตเดเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเดฑเดตเดฟเดเด: เดตเดฟเดเตเดเดฟเดฎเตเดกเดฟเดฏ
เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏ
เดชเดคเดฟเดชเตเดชเต 1.11-เดจเต เดฎเตเดฎเตเดชเต, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดจเดเดคเตเดคเตเดจเตเดจ เดเดฐเตเดฑเตเดฑ เดธเตเดตเดจเดฎเดพเดฏเดฟ เดกเตเดเตเดเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต: เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฎเตเดเตเดเตพ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด, API เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเด. เดชเดคเดฟเดชเตเดชเต 1.11 เดฎเตเดคเตฝ, เดกเตเดเตเดเตผ เดชเดฐเดธเตเดชเดฐเด เดเดเดชเดดเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดญเดพเดเดเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต: เดเดฃเตเดเตเดฏเตเดจเตผ, เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเดณเตเดเต เดฎเตเดดเตเดตเตป เดเตเดตเดฟเดค เดเดเตเดฐเดตเตเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต (เดกเดฟเดธเตเดเต เดธเตเดชเตเดธเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด, เดเดฎเตเดเตเดเตพ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเตเดเต เด เดตเดธเตเดฅ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด, เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด, เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเตเด) เดเดฃเตเดเตเดฏเตโเดจเตผ เดเดเตโเดธเดฟเดเตเดฏเตเดทเตป เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเดพเดฏ runC, cgroups-เดจเตเดฑเต เดเดชเดฏเตเดเดคเตเดคเตเดฏเตเด เดฒเดฟเดจเดเตโเดธเต เดเตเตผเดฃเดฒเดฟเดจเตเดฑเต เดฎเดฑเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดเดณเตเดฏเตเด เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเดพเดฃเต. เดกเตเดเตเดเตผ เดธเตเดตเดจเด เดคเดจเตเดจเต เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดเดชเตเดชเตเตพ เดเดคเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดฒเตเดเตเดเต เดตเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดค API เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดฎเดพเดคเตเดฐเดฎเต เดธเดนเดพเดฏเดฟเดเตเดเต.
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเตเด เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเด
เดกเตเดเตเดเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดจเตเดฑเต เดชเตเดฐเดฟเดฏเดชเตเดชเตเดเตเด เดฎเดพเตผเดเด เดกเตเดเตเดเตผ-เดฎเตเดทเตเตป เดเดฃเต, เดเดคเต เดฑเดฟเดฎเตเดเตเดเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ (เดตเดฟเดตเดฟเดง เดเตเดฒเตเดกเตเดเตพ เดเตพเดชเตเดชเตเดเต) เดกเตเดเตเดเตผ เดจเตเดฐเดฟเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดชเตเดฑเดฎเต, เดฑเดฟเดฎเตเดเตเดเต เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดตเดฟเดตเดฟเดง เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด.
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, 2018 เดฎเตเดคเตฝ, เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ, เด เดคเดฟเดจเดพเตฝ เดฎเดฟเดเตเด เดฒเดฟเดจเดเตเดธเต เดตเดฟเดคเดฐเดฃเดเตเดเตพเดเตเดเตเด เดเดเตเดเตพ เดเดคเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฐเตเดคเดฟเดฏเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด - เดเดฐเต เดถเตเดเดฐเด เดเตเตผเดคเตเดคเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด เดฐเตเดคเดฟ เดเดเตเดเตเดฎเตเดฑเตเดฑเดกเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด เตปเดธเดฟเดฌเดฟเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเต เดธเดฎเดพเดจ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดพเตป เดเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป Centos 7-เตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด, เดเดพเตป เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเตป เดเดฐเต เดธเตเตผเดตเดฑเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเด, เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป เดคเดพเดดเตเดฏเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด:
# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเต เดถเตเดทเด, เดจเดฟเดเตเดเตพ เดธเตเดตเดจเด เดเดฐเดเดญเดฟเดเตเดเต เดธเตเดฑเตเดฑเดพเตผเดเตเดเดชเตเดชเดฟเตฝ เดเดเตเดฃเตเดเดคเตเดฃเตเดเต:
# systemctl enable docker
# systemctl start docker
# firewall-cmd --zone=public --add-port=2377/tcp --permanent
เดเตเดเดพเดคเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดกเตเดเตเดเตผ เดเตเดฐเตเดชเตเดชเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เด เดคเดฟเดจเตเดฑเต เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เดธเตเดกเต เดเตเดเดพเดคเต เดกเตเดเตเดเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเด เดฒเตเดเดฟเดเดเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเดจเตเด เดชเตเดฑเดคเตเดคเตเดจเดฟเดจเตเดจเตเดณเตเดณ API-เดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดเตเดธเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด, เดเตเดเดพเดคเต เดซเดฏเตผเดตเดพเตพ เดเตเดเตเดคเตฝ เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต (เด เดจเตเดตเดฆเดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฒเตเดฒเดพเด เดฎเตเดเดณเดฟเดฒเตเด เดคเดพเดดเตเดฏเตเดฎเตเดณเตเดณ เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเดฟเตฝ เดเดคเต เดจเดฟเดฐเตเดงเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต - เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเตเด เดตเตเดฏเดเตเดคเดคเดฏเตเดเตเดเตเด เดตเตเดฃเตเดเดฟ เดเดพเตป เดเดคเต เดเดดเดฟเดตเดพเดเตเดเดฟ), เดเดจเตเดจเดพเตฝ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดเดพเตป เดเดตเดฟเดเต เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ.
เดฎเดฑเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดเตพ
เดฎเตเดเดณเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเด เดกเตเดเตเดเตผ เดฎเตเดทเตเดจเต เดชเตเดฑเดฎเต, เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟ, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฎเตเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเตเตพ, เด เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เดกเตเดเตเดเตผ เดเดฎเตเดชเตเดธเต, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเดฟเดฒเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดเต เดตเดฟเดจเตเดฏเดพเดธเด เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดชเดเดฐเดฃเด, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเดจเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด YAML เดซเดฏเดฒเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดฎเดฑเตเดฑเต เด เดจเตเดฌเดจเตเดง เดเดพเดฐเตเดฏเดเตเดเดณเตเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดเตพ, เดธเตเดฑเตเดฑเตเดฑเตเดเต เดกเดพเดฑเตเดฑเดฏเตเดเตเดเตเดณเตเดณ เดชเตเตผเดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเตพ).
เดธเดฟเดเดธเดฟเดกเดฟเดเตเดเดพเดฏเดฟ เดเตบเดตเตเดฏเดฑเตเดเตพ เดธเดเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด. เดฎเดฑเตเดฑเตเดฐเต เดฐเดธเดเดฐเดฎเดพเดฏ เดธเดตเดฟเดถเตเดทเดค เดเตเดฒเดธเตเดฑเตเดฑเตผ เดฎเตเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต swarm เดฎเตเดกเต (เดชเดคเดฟเดชเตเดชเต 1.12-เดจเต เดฎเตเดฎเตเดชเต เดเดคเต เดกเตเดเตเดเตผ เดธเตเดตเดพเด เดเดจเตเดจเดฑเดฟเดฏเดชเตเดชเตเดเตเดเดฟเดฐเตเดจเตเดจเต), เดเดคเต เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเตเดฑเตเดฑ เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเตเดเตเดฏเตเด เดฎเตเดเดณเดฟเตฝ เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดฃเตเดเต, เดเดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เดเตป เดฒเตเดกเต เดฌเดพเดฒเตปเดธเดฑเตเด เด เดคเตเดชเตเดฒเต เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพเดเตเดเตเดณเตเดณ เดฐเดนเดธเตเดฏเดเตเดเตพเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด เดเดฃเตเดเต.
เดเตเดฑเดฟเดฏ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเตเดฏเตเดณเตเดณ เดกเตเดเตเดเตผ เดเดฎเตเดชเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ YAML เดซเดฏเดฒเตเดเตพ เด
เดคเตเดคเดฐเด เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเด, เดตเดฟเดตเดฟเดง เดเดตเดถเตเดฏเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเตเดฑเตเดคเตเด เดเดเดคเตเดคเดฐเดตเตเดฎเดพเดฏ เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเดณเตเดเต เดชเดฐเดฟเดชเดพเดฒเดจเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดตเดฒเดฟเดฏ เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเตพเดเตเดเต, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดพเดฃเต เด
เดญเดฟเดเดพเดฎเตเดฏเด, เดเดพเดฐเดฃเด เดธเตเดตเดพเด เดฎเตเดกเดฟเดจเตเดฑเต เดชเดฐเดฟเดชเดพเดฒเดจเดเตเดเตเดฒเดตเต เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดเดณเตเดเตเดเดพเตพ เดเตเดเตเดคเดฒเดพเดฃเต. runC เดเตเดเดพเดคเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฃเตเดเตเดฏเตเดจเตผ เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต
เดกเตเดเตเดเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเตเด เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเด เดถเตเดทเด, เดเดเตเดเตพ เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด, เด
เดคเดฟเตฝ เดเดเตเดเตพ เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดเตเดฎเดฟเดจเดพเดฏเดฟ GitLab, Docker Registry เดเดจเตเดจเดฟเดต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด. เดเดพเตป เดฎเตเดจเตเดจเต เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเดจเตเดเตพ เดธเตเตผเดตเดฑเตเดเดณเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเด, เด
เดคเดฟเตฝ เดเดพเตป เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค FS GlusterFS เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด; เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเตเดเต เดเดฐเต เดคเดเดฐเดพเตผ-เดธเดนเดฟเดทเตเดฃเตเดค เดชเดคเดฟเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดฐเต เดกเตเดเตเดเตผ เดตเตเดณเตเดฏเดเตเดเดณเตเดเต เดธเดเดญเดฐเดฃเดฎเดพเดฏเดฟ เดเดพเตป เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดเดเดเดเตเดเตพ: เดธเตเดตเดพเดฎเดฟเดจเต เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ GitLab เดฑเดฃเตเดฃเดฑเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเต เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟ, Postgresql, Redis, GitLab. เดเดเตเดเตพ เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเต Postgresql เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด
เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด GlusterFS เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต (เด เดตเดฏเต node1, node2, node3 เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต), เดจเดฟเดเตเดเตพ เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดเดฏเตเด เดซเดฏเตผเดตเดพเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดเดฏเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด:
# yum -y install centos-release-gluster7
# yum -y install glusterfs-server
# systemctl enable glusterd
# systemctl start glusterd
# firewall-cmd --add-service=glusterfs --permanent
# firewall-cmd --reload
# mkdir -p /srv/gluster
# mkdir -p /srv/docker
# echo "$(hostname):/docker /srv/docker glusterfs defaults,_netdev 0 0" >> /etc/fstab
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเต เดถเตเดทเด, GlusterFS เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเตเดฒเดฟ เดเดฐเต เดจเตเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเตเดเดฐเดฃเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต node1:
# gluster peer probe node2
# gluster peer probe node3
# gluster volume create docker replica 3 node1:/srv/gluster node2:/srv/gluster node3:/srv/gluster force
# gluster volume start docker
เดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดตเตเดณเดฟเดฏเด เดจเดฟเดเตเดเตพ เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต (เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เดเดฎเดพเตปเดกเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดฃเด):
# mount /srv/docker
เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดเดจเตเดจเดฟเตฝ swarm เดฎเตเดกเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เดฒเตเดกเตผ เดเดฏเดฟเดฐเดฟเดเตเดเตเด, เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดตเตผ เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดเตเดฐเตเดฃเตเดเดฟเดตเดฐเตเด, เด เดคเดฟเดจเดพเตฝ เดเดฆเตเดฏ เดธเตเตผเดตเดฑเดฟเตฝ เดเดฎเดพเตปเดกเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดซเดฒเด เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเดฟเตฝ เดชเดเตผเดคเตเดคเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
เดชเตเดฐเดพเดฐเดเดญ เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเดเตเดเตเดเดฐเดฃเด, เดเดพเตป node1-เตฝ เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต:
# docker swarm init
Swarm initialized: current node (a5jpfrh5uvo7svzz1ajduokyq) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0c5mf7mvzc7o7vjk0wngno2dy70xs95tovfxbv4tqt9280toku-863hyosdlzvd76trfptd4xnzd xx.xx.xx.xx:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# docker swarm join-token manager
เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดเดฎเดพเตปเดกเดฟเดจเตเดฑเต เดซเดฒเด เดเดเตเดเตพ เดชเดเตผเดคเตเดคเดฟ node2, node3 เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต:
# docker swarm join --token SWMTKN-x-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxx xx.xx.xx.xx:2377
This node joined a swarm as a manager.
เด เดเดเตเดเดคเตเดคเดฟเตฝ, เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดชเตเดฐเดพเดฅเดฎเดฟเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ, เดจเดฎเตเดเตเดเต เดธเตเดตเดจเดเตเดเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด; เดฎเดฑเตเดฑเตเดตเดฟเดงเดคเตเดคเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดฃเตเด เดเดฎเดพเตปเดกเตเดเตพ node1-เตฝ เดจเดฟเดจเตเดจเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด.
เดเดฆเตเดฏเด, เดจเดฎเตเดเตเดเต เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเด:
# docker network create --driver=overlay etcd
# docker network create --driver=overlay pgsql
# docker network create --driver=overlay redis
# docker network create --driver=overlay traefik
# docker network create --driver=overlay gitlab
เดคเตเดเตผเดจเตเดจเต เดเดเตเดเตพ เดธเตเตผเดตเดฑเตเดเตพ เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต, เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดเดฟเดฒ เดธเตเดตเดจเดเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต:
# docker node update --label-add nodename=node1 node1
# docker node update --label-add nodename=node2 node2
# docker node update --label-add nodename=node3 node3
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, Traefik, Stolon เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ etcd เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพ เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, KV เดธเดเดญเดฐเดฃเด. Postgresql-เดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ, เดเดต เดธเตเตผเดตเดฑเตเดเดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเดณเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เด เดเดฎเดพเตปเดกเต เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต:
# mkdir -p /srv/etcd
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, etcd เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดจเตเด เดเดฐเต เดซเดฏเตฝ เดเดฃเตเดเดพเดเตเดเตเด:
00etcd.yml
version: '3.7'
services:
etcd1:
image: quay.io/coreos/etcd:latest
hostname: etcd1
command:
- etcd
- --name=etcd1
- --data-dir=/data.etcd
- --advertise-client-urls=http://etcd1:2379
- --listen-client-urls=http://0.0.0.0:2379
- --initial-advertise-peer-urls=http://etcd1:2380
- --listen-peer-urls=http://0.0.0.0:2380
- --initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
- --initial-cluster-state=new
- --initial-cluster-token=etcd-cluster
networks:
- etcd
volumes:
- etcd1vol:/data.etcd
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node1]
etcd2:
image: quay.io/coreos/etcd:latest
hostname: etcd2
command:
- etcd
- --name=etcd2
- --data-dir=/data.etcd
- --advertise-client-urls=http://etcd2:2379
- --listen-client-urls=http://0.0.0.0:2379
- --initial-advertise-peer-urls=http://etcd2:2380
- --listen-peer-urls=http://0.0.0.0:2380
- --initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
- --initial-cluster-state=new
- --initial-cluster-token=etcd-cluster
networks:
- etcd
volumes:
- etcd2vol:/data.etcd
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node2]
etcd3:
image: quay.io/coreos/etcd:latest
hostname: etcd3
command:
- etcd
- --name=etcd3
- --data-dir=/data.etcd
- --advertise-client-urls=http://etcd3:2379
- --listen-client-urls=http://0.0.0.0:2379
- --initial-advertise-peer-urls=http://etcd3:2380
- --listen-peer-urls=http://0.0.0.0:2380
- --initial-cluster=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380
- --initial-cluster-state=new
- --initial-cluster-token=etcd-cluster
networks:
- etcd
volumes:
- etcd3vol:/data.etcd
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node3]
volumes:
etcd1vol:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/etcd"
etcd2vol:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/etcd"
etcd3vol:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/etcd"
networks:
etcd:
external: true
# docker stack deploy --compose-file 00etcd.yml etcd
เดเตเดฑเดเตเดเต เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดถเตเดทเด, etcd เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดฏเตผเดจเตเดจเดคเดพเดฃเตเดจเตเดจเต เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต:
# docker exec $(docker ps | awk '/etcd/ {print $1}') etcdctl member list
ade526d28b1f92f7: name=etcd1 peerURLs=http://etcd1:2380 clientURLs=http://etcd1:2379 isLeader=false
bd388e7810915853: name=etcd3 peerURLs=http://etcd3:2380 clientURLs=http://etcd3:2379 isLeader=false
d282ac2ce600c1ce: name=etcd2 peerURLs=http://etcd2:2380 clientURLs=http://etcd2:2379 isLeader=true
# docker exec $(docker ps | awk '/etcd/ {print $1}') etcdctl cluster-health
member ade526d28b1f92f7 is healthy: got healthy result from http://etcd1:2379
member bd388e7810915853 is healthy: got healthy result from http://etcd3:2379
member d282ac2ce600c1ce is healthy: got healthy result from http://etcd2:2379
cluster is healthy
Postgresql-เดจเดพเดฏเดฟ เดเดเตเดเตพ เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เดเดฎเดพเตปเดกเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเด:
# mkdir -p /srv/pgsql
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, Postgresql เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเด:
01pgsql.yml
version: '3.7'
services:
pgsentinel:
image: sorintlab/stolon:master-pg10
command:
- gosu
- stolon
- stolon-sentinel
- --cluster-name=stolon-cluster
- --store-backend=etcdv3
- --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
- --log-level=debug
networks:
- etcd
- pgsql
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 30s
order: stop-first
failure_action: pause
pgkeeper1:
image: sorintlab/stolon:master-pg10
hostname: pgkeeper1
command:
- gosu
- stolon
- stolon-keeper
- --pg-listen-address=pgkeeper1
- --pg-repl-username=replica
- --uid=pgkeeper1
- --pg-su-username=postgres
- --pg-su-passwordfile=/run/secrets/pgsql
- --pg-repl-passwordfile=/run/secrets/pgsql_repl
- --data-dir=/var/lib/postgresql/data
- --cluster-name=stolon-cluster
- --store-backend=etcdv3
- --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
networks:
- etcd
- pgsql
environment:
- PGDATA=/var/lib/postgresql/data
volumes:
- pgkeeper1:/var/lib/postgresql/data
secrets:
- pgsql
- pgsql_repl
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node1]
pgkeeper2:
image: sorintlab/stolon:master-pg10
hostname: pgkeeper2
command:
- gosu
- stolon
- stolon-keeper
- --pg-listen-address=pgkeeper2
- --pg-repl-username=replica
- --uid=pgkeeper2
- --pg-su-username=postgres
- --pg-su-passwordfile=/run/secrets/pgsql
- --pg-repl-passwordfile=/run/secrets/pgsql_repl
- --data-dir=/var/lib/postgresql/data
- --cluster-name=stolon-cluster
- --store-backend=etcdv3
- --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
networks:
- etcd
- pgsql
environment:
- PGDATA=/var/lib/postgresql/data
volumes:
- pgkeeper2:/var/lib/postgresql/data
secrets:
- pgsql
- pgsql_repl
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node2]
pgkeeper3:
image: sorintlab/stolon:master-pg10
hostname: pgkeeper3
command:
- gosu
- stolon
- stolon-keeper
- --pg-listen-address=pgkeeper3
- --pg-repl-username=replica
- --uid=pgkeeper3
- --pg-su-username=postgres
- --pg-su-passwordfile=/run/secrets/pgsql
- --pg-repl-passwordfile=/run/secrets/pgsql_repl
- --data-dir=/var/lib/postgresql/data
- --cluster-name=stolon-cluster
- --store-backend=etcdv3
- --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
networks:
- etcd
- pgsql
environment:
- PGDATA=/var/lib/postgresql/data
volumes:
- pgkeeper3:/var/lib/postgresql/data
secrets:
- pgsql
- pgsql_repl
deploy:
replicas: 1
placement:
constraints: [node.labels.nodename == node3]
postgresql:
image: sorintlab/stolon:master-pg10
command: gosu stolon stolon-proxy --listen-address 0.0.0.0 --cluster-name stolon-cluster --store-backend=etcdv3 --store-endpoints http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
networks:
- etcd
- pgsql
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 30s
order: stop-first
failure_action: rollback
volumes:
pgkeeper1:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/pgsql"
pgkeeper2:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/pgsql"
pgkeeper3:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/pgsql"
secrets:
pgsql:
file: "/srv/docker/postgres"
pgsql_repl:
file: "/srv/docker/replica"
networks:
etcd:
external: true
pgsql:
external: true
เดเดเตเดเตพ เดฐเดนเดธเตเดฏเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดซเดฏเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
# </dev/urandom tr -dc 234567890qwertyuopasdfghjkzxcvbnmQWERTYUPASDFGHKLZXCVBNM | head -c $(((RANDOM%3)+15)) > /srv/docker/replica
# </dev/urandom tr -dc 234567890qwertyuopasdfghjkzxcvbnmQWERTYUPASDFGHKLZXCVBNM | head -c $(((RANDOM%3)+15)) > /srv/docker/postgres
# docker stack deploy --compose-file 01pgsql.yml pgsql
เดเตเดฑเดเตเดเต เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดถเตเดทเด (เดเดฎเดพเตปเดกเดฟเดจเตเดฑเต เดเดเตเดเตเดชเตเดเตเดเต เดเดพเดฃเตเด เดกเตเดเตเดเตผ เดธเตเดตเดจเด lsเดเดฒเตเดฒเดพ เดธเตเดตเดจเดเตเดเดณเตเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ) เดเดเตเดเตพ Postgresql เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต:
# docker exec $(docker ps | awk '/pgkeeper/ {print $1}') stolonctl --cluster-name=stolon-cluster --store-backend=etcdv3 --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379 init
Postgresql เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต เดธเดจเตเดจเดฆเตเดงเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต:
# docker exec $(docker ps | awk '/pgkeeper/ {print $1}') stolonctl --cluster-name=stolon-cluster --store-backend=etcdv3 --store-endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379 status
=== Active sentinels ===
ID LEADER
26baa11d false
74e98768 false
a8cb002b true
=== Active proxies ===
ID
4d233826
9f562f3b
b0c79ff1
=== Keepers ===
UID HEALTHY PG LISTENADDRESS PG HEALTHY PG WANTEDGENERATION PG CURRENTGENERATION
pgkeeper1 true pgkeeper1:5432 true 2 2
pgkeeper2 true pgkeeper2:5432 true 2 2
pgkeeper3 true pgkeeper3:5432 true 3 3
=== Cluster Info ===
Master Keeper: pgkeeper3
===== Keepers/DB tree =====
pgkeeper3 (master)
โโpgkeeper2
โโpgkeeper1
เดชเตเดฑเดคเตเดคเต เดจเดฟเดจเตเดจเต เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดเดเตโเดธเดธเต เดคเตเดฑเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพ traefik เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเต:
03traefik.yml
version: '3.7'
services:
traefik:
image: traefik:latest
command: >
--log.level=INFO
--providers.docker=true
--entryPoints.web.address=:80
--providers.providersThrottleDuration=2
--providers.docker.watch=true
--providers.docker.swarmMode=true
--providers.docker.swarmModeRefreshSeconds=15s
--providers.docker.exposedbydefault=false
--accessLog.bufferingSize=0
--api=true
--api.dashboard=true
--api.insecure=true
networks:
- traefik
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
replicas: 3
placement:
constraints:
- node.role == manager
preferences:
- spread: node.id
labels:
- traefik.enable=true
- traefik.http.routers.traefik.rule=Host(`traefik.example.com`)
- traefik.http.services.traefik.loadbalancer.server.port=8080
- traefik.docker.network=traefik
networks:
traefik:
external: true
# docker stack deploy --compose-file 03traefik.yml traefik
เดเดเตเดเตพ เดฑเตเดกเดฟเดธเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพ เดเดฒเตเดฒเดพ เดจเตเดกเตเดเดณเดฟเดฒเตเด เดเดฐเต เดธเตเดฑเตเดฑเตเดฑเตเดเต เดกเดฏเดฑเดเตเดเดฑเดฟ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต:
# mkdir -p /srv/redis
05redis.yml
version: '3.7'
services:
redis-master:
image: 'bitnami/redis:latest'
networks:
- redis
ports:
- '6379:6379'
environment:
- REDIS_REPLICATION_MODE=master
- REDIS_PASSWORD=xxxxxxxxxxx
deploy:
mode: global
restart_policy:
condition: any
volumes:
- 'redis:/opt/bitnami/redis/etc/'
redis-replica:
image: 'bitnami/redis:latest'
networks:
- redis
ports:
- '6379'
depends_on:
- redis-master
environment:
- REDIS_REPLICATION_MODE=slave
- REDIS_MASTER_HOST=redis-master
- REDIS_MASTER_PORT_NUMBER=6379
- REDIS_MASTER_PASSWORD=xxxxxxxxxxx
- REDIS_PASSWORD=xxxxxxxxxxx
deploy:
mode: replicated
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: any
redis-sentinel:
image: 'bitnami/redis:latest'
networks:
- redis
ports:
- '16379'
depends_on:
- redis-master
- redis-replica
entrypoint: |
bash -c 'bash -s <<EOF
"/bin/bash" -c "cat <<EOF > /opt/bitnami/redis/etc/sentinel.conf
port 16379
dir /tmp
sentinel monitor master-node redis-master 6379 2
sentinel down-after-milliseconds master-node 5000
sentinel parallel-syncs master-node 1
sentinel failover-timeout master-node 5000
sentinel auth-pass master-node xxxxxxxxxxx
sentinel announce-ip redis-sentinel
sentinel announce-port 16379
EOF"
"/bin/bash" -c "redis-sentinel /opt/bitnami/redis/etc/sentinel.conf"
EOF'
deploy:
mode: global
restart_policy:
condition: any
volumes:
redis:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: "/srv/redis"
networks:
redis:
external: true
# docker stack deploy --compose-file 05redis.yml redis
เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟ เดเตเตผเดเตเดเตเด:
06registry.yml
version: '3.7'
services:
registry:
image: registry:2.6
networks:
- traefik
volumes:
- registry_data:/var/lib/registry
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
restart_policy:
condition: on-failure
labels:
- traefik.enable=true
- traefik.http.routers.registry.rule=Host(`registry.example.com`)
- traefik.http.services.registry.loadbalancer.server.port=5000
- traefik.docker.network=traefik
volumes:
registry_data:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/docker/registry"
networks:
traefik:
external: true
# mkdir /srv/docker/registry
# docker stack deploy --compose-file 06registry.yml registry
เดเดเตเดตเดฟเตฝ - GitLab:
08gitlab-runner.yml
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce:latest
networks:
- pgsql
- redis
- traefik
- gitlab
ports:
- 22222:22
environment:
GITLAB_OMNIBUS_CONFIG: |
postgresql['enable'] = false
redis['enable'] = false
gitlab_rails['registry_enabled'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "XXXXXXXXXXX"
gitlab_rails['db_host'] = "postgresql"
gitlab_rails['db_port'] = "5432"
gitlab_rails['db_database'] = "gitlab"
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['redis_host'] = 'redis-master'
gitlab_rails['redis_port'] = '6379'
gitlab_rails['redis_password'] = 'xxxxxxxxxxx'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yandex.ru"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "xxxxxxxxx"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
external_url 'http://gitlab.example.com/'
gitlab_rails['gitlab_shell_ssh_port'] = 22222
volumes:
- gitlab_conf:/etc/gitlab
- gitlab_logs:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
labels:
- traefik.enable=true
- traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`)
- traefik.http.services.gitlab.loadbalancer.server.port=80
- traefik.docker.network=traefik
gitlab-runner:
image: gitlab/gitlab-runner:latest
networks:
- gitlab
volumes:
- gitlab_runner_conf:/etc/gitlab
- /var/run/docker.sock:/var/run/docker.sock
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
volumes:
gitlab_conf:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/docker/gitlab/conf"
gitlab_logs:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/docker/gitlab/logs"
gitlab_data:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/docker/gitlab/data"
gitlab_runner_conf:
driver: local
driver_opts:
type: none
o: bind
device: "/srv/docker/gitlab/runner"
networks:
pgsql:
external: true
redis:
external: true
traefik:
external: true
gitlab:
external: true
# mkdir -p /srv/docker/gitlab/conf
# mkdir -p /srv/docker/gitlab/logs
# mkdir -p /srv/docker/gitlab/data
# mkdir -p /srv/docker/gitlab/runner
# docker stack deploy --compose-file 08gitlab-runner.yml gitlab
เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเตเดฏเตเด เดธเตเดตเดจเดเตเดเดณเตเดเตเดฏเตเด เด เดตเดธเดพเดจ เด เดตเดธเตเดฅ:
# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
lef9n3m92buq etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:latest
ij6uyyo792x5 etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:latest
fqttqpjgp6pp etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:latest
hq5iyga28w33 gitlab_gitlab replicated 1/1 gitlab/gitlab-ce:latest *:22222->22/tcp
dt7s6vs0q4qc gitlab_gitlab-runner replicated 1/1 gitlab/gitlab-runner:latest
k7uoezno0h9n pgsql_pgkeeper1 replicated 1/1 sorintlab/stolon:master-pg10
cnrwul4r4nse pgsql_pgkeeper2 replicated 1/1 sorintlab/stolon:master-pg10
frflfnpty7tr pgsql_pgkeeper3 replicated 1/1 sorintlab/stolon:master-pg10
x7pqqchi52kq pgsql_pgsentinel replicated 3/3 sorintlab/stolon:master-pg10
mwu2wl8fti4r pgsql_postgresql replicated 3/3 sorintlab/stolon:master-pg10
9hkbe2vksbzb redis_redis-master global 3/3 bitnami/redis:latest *:6379->6379/tcp
l88zn8cla7dc redis_redis-replica replicated 3/3 bitnami/redis:latest *:30003->6379/tcp
1utp309xfmsy redis_redis-sentinel global 3/3 bitnami/redis:latest *:30002->16379/tcp
oteb824ylhyp registry_registry replicated 1/1 registry:2.6
qovrah8nzzu8 traefik_traefik replicated 3/3 traefik:latest *:80->80/tcp, *:443->443/tcp
เดฎเดฑเตเดฑเตเดจเตเดคเดพเดฃเต เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดเดดเดฟเดฏเตเด? https เดตเดดเดฟ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต Traefik เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดฑเดชเตเดชเดพเดเตเดเตเด, Postgresql, Redis เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเดพเดฏเดฟ tls เดเตปเดเตเดฐเดฟเดชเตเดทเตป เดเตเตผเดเตเดเตเด. เดเดจเตเดจเดพเตฝ เดชเตเดคเตเดตเต, เดเดคเต เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเต เดเดฐเต PoC เดเดฏเดฟ เดจเตฝเดเดพเด. เดเดจเดฟ เดกเตเดเตเดเดฑเดฟเดจเต เดชเดเดฐเดฎเดพเดฏเดฟ เดจเตเดเตเดเดพเด.
เดชเตเดกเตเดฎเดพเตป
เดชเตเดกเตเดเตพ (เดชเตเดกเตเดเตพ, เดเดฐเตเดฎเดฟเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเตเดเต เดเตเดฐเตเดชเตเดชเตเดเตพ) เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดตเดณเดฐเต เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เดฎเดฑเตเดฑเตเดฐเต เดเดเตเดเดฟเตป. เดกเตเดเตเดเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดคเดฟเดจเต เดเดฐเต เดธเตเดตเดจเดตเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ; เดเดฒเตเดฒเดพ เดเตเดฒเดฟเดเดณเตเด เดฒเดฟเดฌเตโเดชเตเดกเต เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดฟเดฒเตเดเตเดฏเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต. Go-เดฏเดฟเดฒเตเด เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, runC เดชเตเดฒเตเดณเตเดณ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต OCI-เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดฑเตบเดเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต.
เดชเตเดกเตเดฎเดพเดจเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดกเตเดเตเดเดฑเดฟเดจเต เด เดจเตเดธเตเดฎเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดคเตเดชเตเดฒเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด (เด เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดฐเดเดฏเดฟเดคเดพเดตเต เดเตพเดชเตเดชเตเดเต เดเดคเต เดชเดฐเตเดเตเดทเดฟเดเตเด เดชเดฒเดฐเตเด เดชเดฑเดเตเดเดคเตเดชเตเดฒเต):
$ alias docker=podman
เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฒเดฟเดฏเดฟเตฝ เดคเตเดเดฐเดพเด. เดชเตเดคเตเดตเต, เดชเตเดกเตเดฎเดพเดจเตเดฎเดพเดฏเตเดณเตเดณ เดธเดพเดนเดเดฐเตเดฏเด เดตเดณเดฐเต เดฐเดธเดเดฐเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเดฑเต เดเดฆเตเดฏเดเดพเดฒ เดชเดคเดฟเดชเตเดชเตเดเตพ เดกเตเดเตเดเดฑเดฟเดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฐเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, 2015-เดเดเต, เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเดณเตเดเต เดฒเตเดเดคเตเดคเดฟเดจเตเดฑเต (เดเดธเดฟเด - เดเดชเตเดชเตบ เดเดฃเตเดเตเดฏเตเดจเตผ เดเดจเดฟเดทเตเดฏเตเดฑเตเดฑเตเดตเต) เดกเตเดเตเดเดฑเดฟเดจเต เดเดฃเตเดเตเดฏเตเดจเตผ เดเดฏเตเด เดฑเตบเดธเดฟ เดเดฏเตเด เดตเดฟเดญเดเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด, เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเดเตเดจเตเดจเดคเดฟเดจเต เดกเตเดเตเดเดฑเดฟเดจเต เดชเดเดฐเดฎเดพเดฏเดฟ เดเดฐเต เดฌเดฆเตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต: CRI-O. เดเดเตเดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเตเดกเตเดฎเดพเตป เดกเตเดเตเดเดฑเดฟเดจเต เดชเดเดฐเดฎเดพเดฃเต, เดเตเดฐเตเดชเตเดชเดฟเดเดเต เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดเตพเดชเตเดชเตเดเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดฟเดจเตเดฑเต เดคเดคเตเดตเดเตเดเดณเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดคเดพเดฃเต, เดเดจเตเดจเดพเตฝ เด เดงเดฟเด เดธเตเดตเดจเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดกเตเดเตเดเตผ เดถเตเดฒเดฟเดฏเดฟเดฒเตเดณเตเดณ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดชเดฆเตเดงเดคเดฟเดฏเตเดเต เดชเตเดฐเดงเดพเดจ เดฒเดเตเดทเตเดฏเด. เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ, เดเดฐเต เดเตเดเตเดเด เดฎเตเดกเต เดเดฒเตเดฒ, เดเดพเดฐเดฃเด เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดตเดถเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดเตเดเตเดเตเด เดเดจเตเดจเต เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดชเดฑเดฏเตเดจเตเดจเต.
เดเตปเดธเตเดฑเตเดฑเดฒเตเดทเตป
Centos 7-เตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป, Extras repository เดธเดเตเดตเดฎเดพเดเตเดเตเด, เดคเตเดเตผเดจเตเดจเต เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฒเตเดฒเดพเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด:
# yum -y install podman
เดฎเดฑเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดเตพ
Podman-เดจเต systemd-เดฏเตโเดเตเดเดพเดฏเดฟ เดฏเตเดฃเดฟเดฑเตเดฑเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เด เดเตเดเดจเต เดธเตเตผเดตเตผ เดฑเตเดฌเตเดเตเดเดฟเดจเต เดถเตเดทเด เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเตเดเดพเดคเต, systemd เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเตฝ pid 1 เดเดฏเดฟ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดจเตเดจเต เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฌเดฟเตฝเดกเดพ เดเตเตพ เดเดฃเตเดเต, เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดเตเดณเตเดเดณเตเด เดเดฃเตเดเต - เดกเตเดเตเดเตผ-เดเดฎเตเดชเตเดธเดฟเดจเตเดฑเต เด เดจเดฒเตเดเตเดเตพ, เดเดคเต เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเดณเตเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดชเตเดกเตเดฎเดพเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฎเดพเดฑเตเดฑเด เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดชเตเดกเตเดฎเดพเดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต
เดเดฐเต เดเตเดเตเดเด เดฎเตเดกเต เดเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ (เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดตเดถเตเดฏเดฎเดพเดฃเตเดเตเดเดฟเตฝ เดเดเตเดเตพ เดเตเดฌเตผเดจเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเดฃเด), เดเดเตเดเตพ เด เดคเต เดชเตเดฐเดคเตเดฏเตเด เดชเดพเดคเตเดฐเดเตเดเดณเดฟเตฝ เดถเตเดเดฐเดฟเดเตเดเตเด.
เดชเตเดกเตเดฎเดพเตป-เดเดฎเตเดชเตเดธเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด:
# yum -y install python3-pip
# pip3 install podman-compose
เดชเตเดกเตเดฎเดพเดจเดฟเดจเดพเดฏเตเดณเตเดณ เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เด เดฒเตเดชเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดเดเตเดเตพเดเตเดเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดตเตเดณเดฟเดฏเด เดตเดฟเดญเดพเดเด เดจเตเดฐเดฟเดเตเดเต เดธเตเดตเดจเดเตเดเดณเตเดณเตเดณ เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดฃเตเดเดฟ เดตเดจเตเดจเต.
gitlab-podman.yml
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce:latest
hostname: gitlab.example.com
restart: unless-stopped
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_shell_ssh_port'] = 22222
ports:
- "80:80"
- "22222:22"
volumes:
- /srv/podman/gitlab/conf:/etc/gitlab
- /srv/podman/gitlab/data:/var/opt/gitlab
- /srv/podman/gitlab/logs:/var/log/gitlab
networks:
- gitlab
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
depends_on:
- gitlab
volumes:
- /srv/podman/gitlab/runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
networks:
- gitlab
networks:
gitlab:
# podman-compose -f gitlab-runner.yml -d up
เดซเดฒเดฎเดพเดฏเดฟ:
# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da53da946c01 docker.io/gitlab/gitlab-runner:alpine run --user=gitlab... About a minute ago Up About a minute ago 0.0.0.0:22222->22/tcp, 0.0.0.0:80->80/tcp root_gitlab-runner_1
781c0103c94a docker.io/gitlab/gitlab-ce:latest /assets/wrapper About a minute ago Up About a minute ago 0.0.0.0:22222->22/tcp, 0.0.0.0:80->80/tcp root_gitlab_1
systemd, kubernetes เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเดพเดฏเดฟ เดเดคเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดจเตเดเตเดเดพเด, เดเดคเดฟเดจเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดชเตเดกเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดกเดฟเดฏเต เดเดฃเตเดเตเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต:
# podman pod ls
POD ID NAME STATUS CREATED # OF CONTAINERS INFRA ID
71fc2b2a5c63 root Running 11 minutes ago 3 db40ab8bf84b
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต:
# podman generate kube 71fc2b2a5c63
# Generation of Kubernetes YAML is still under development!
#
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-1.6.4
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2020-07-29T19:22:40Z"
labels:
app: root
name: root
spec:
containers:
- command:
- /assets/wrapper
env:
- name: PATH
value: /opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- name: TERM
value: xterm
- name: HOSTNAME
value: gitlab.example.com
- name: container
value: podman
- name: GITLAB_OMNIBUS_CONFIG
value: |
gitlab_rails['gitlab_shell_ssh_port'] = 22222
- name: LANG
value: C.UTF-8
image: docker.io/gitlab/gitlab-ce:latest
name: rootgitlab1
ports:
- containerPort: 22
hostPort: 22222
protocol: TCP
- containerPort: 80
hostPort: 80
protocol: TCP
resources: {}
securityContext:
allowPrivilegeEscalation: true
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
volumeMounts:
- mountPath: /var/opt/gitlab
name: srv-podman-gitlab-data
- mountPath: /var/log/gitlab
name: srv-podman-gitlab-logs
- mountPath: /etc/gitlab
name: srv-podman-gitlab-conf
workingDir: /
- command:
- run
- --user=gitlab-runner
- --working-directory=/home/gitlab-runner
env:
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- name: TERM
value: xterm
- name: HOSTNAME
- name: container
value: podman
image: docker.io/gitlab/gitlab-runner:alpine
name: rootgitlab-runner1
resources: {}
securityContext:
allowPrivilegeEscalation: true
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
volumeMounts:
- mountPath: /etc/gitlab-runner
name: srv-podman-gitlab-runner
- mountPath: /var/run/docker.sock
name: var-run-docker.sock
workingDir: /
volumes:
- hostPath:
path: /srv/podman/gitlab/runner
type: Directory
name: srv-podman-gitlab-runner
- hostPath:
path: /var/run/docker.sock
type: File
name: var-run-docker.sock
- hostPath:
path: /srv/podman/gitlab/data
type: Directory
name: srv-podman-gitlab-data
- hostPath:
path: /srv/podman/gitlab/logs
type: Directory
name: srv-podman-gitlab-logs
- hostPath:
path: /srv/podman/gitlab/conf
type: Directory
name: srv-podman-gitlab-conf
status: {}
Systemd:
# podman generate systemd 71fc2b2a5c63
# pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
# autogenerated by Podman 1.6.4
# Thu Jul 29 15:23:28 EDT 2020
[Unit]
Description=Podman pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
Documentation=man:podman-generate-systemd(1)
Requires=container-781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3.service container-da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864.service
Before=container-781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3.service container-da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864.service
[Service]
Restart=on-failure
ExecStart=/usr/bin/podman start db40ab8bf84bf35141159c26cb6e256b889c7a98c0418eee3c4aa683c14fccaa
ExecStop=/usr/bin/podman stop -t 10 db40ab8bf84bf35141159c26cb6e256b889c7a98c0418eee3c4aa683c14fccaa
KillMode=none
Type=forking
PIDFile=/var/run/containers/storage/overlay-containers/db40ab8bf84bf35141159c26cb6e256b889c7a98c0418eee3c4aa683c14fccaa/userdata/conmon.pid
[Install]
WantedBy=multi-user.target
# container-da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864.service
# autogenerated by Podman 1.6.4
# Thu Jul 29 15:23:28 EDT 2020
[Unit]
Description=Podman container-da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864.service
Documentation=man:podman-generate-systemd(1)
RefuseManualStart=yes
RefuseManualStop=yes
BindsTo=pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
After=pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
[Service]
Restart=on-failure
ExecStart=/usr/bin/podman start da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864
ExecStop=/usr/bin/podman stop -t 10 da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864
KillMode=none
Type=forking
PIDFile=/var/run/containers/storage/overlay-containers/da53da946c01449f500aa5296d9ea6376f751948b17ca164df438b7df6607864/userdata/conmon.pid
[Install]
WantedBy=multi-user.target
# container-781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3.service
# autogenerated by Podman 1.6.4
# Thu Jul 29 15:23:28 EDT 2020
[Unit]
Description=Podman container-781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3.service
Documentation=man:podman-generate-systemd(1)
RefuseManualStart=yes
RefuseManualStop=yes
BindsTo=pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
After=pod-71fc2b2a5c6346f0c1c86a2dc45dbe78fa192ea02aac001eb8347ccb8c043c26.service
[Service]
Restart=on-failure
ExecStart=/usr/bin/podman start 781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3
ExecStop=/usr/bin/podman stop -t 10 781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3
KillMode=none
Type=forking
PIDFile=/var/run/containers/storage/overlay-containers/781c0103c94aaa113c17c58d05ddabf8df4bf39707b664abcf17ed2ceff467d3/userdata/conmon.pid
[Install]
WantedBy=multi-user.target
เดจเดฟเตผเดญเดพเดเตเดฏเดตเดถเดพเตฝ, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต, systemd-เดฏเตโเดเตเดเดพเดฏเดฟ เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตโเดค เดฏเตเดฃเดฟเดฑเตเดฑเต เดฎเดฑเตเดฑเตเดจเตเดจเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด เดคเตเดคเดฐเดฎเตเดฐเต เดธเตเดตเดจเด เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ เดชเดดเดฏ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเตฝ), เด เดคเดฟเดจเดพเตฝ เด เดคเตเดคเดฐเด เดเดพเดฐเตเดฏเดเตเดเตพ เดจเดฟเดเตเดเตพ เดธเตเดตเดฏเด เดเดดเตเดคเตเดฃเตเดเดฟเดตเดฐเตเด.
เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดกเตเดเตเดเตผ-เดเดฎเตเดชเตเดธเดฟเดจเดพเดฏเดฟ เดชเดดเดฏ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดตเดถเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดกเตเดเตเดเดฑเดฟเดจเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดฌเดฆเตฝ เดจเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดชเตเดกเตเดฎเดพเตป เดฎเดคเดฟเดฏเดพเดเตเด.
rkt
เดชเดฆเตเดงเดคเดฟ
เดชเตเดฒเดพเดทเต
เดเตเดเตเดคเตฝ
เดเดฃเตเดเตเดคเตเดคเดฒเตเดเตพ
เดเตเดฌเตเตผเดจเตเดฑเตเดฑเตเดฎเดพเดฏเตเดณเตเดณ เดธเดพเดนเดเดฐเตเดฏเด เดตเดณเดฐเต เดฐเดธเดเดฐเดฎเดพเดฃเต: เดเดฐเต เดตเดถเดคเตเดคเต, เดกเตเดเตเดเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ (เดธเตเดตเดพเด เดฎเตเดกเดฟเตฝ) เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เด เดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฒเดฏเดจเตเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดเตฝเดชเตเดชเดจเตเดจ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดชเตเดฒเตเด เดเดดเดฟเดฏเตเด, เดเดคเต เดเตเดฑเดฟเดฏ เดเตเดฎเตเดเตพเดเตเดเต (3-5 เดเดณเตเดเตพ) เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เดธเดคเตเดฏเดฎเดพเดฃเต. , เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดเตเดฑเดฟเดฏ เดฎเตเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฒเตเดกเต , เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฏเตผเดจเตเดจ เดฒเตเดกเตเดเตพ เดเตพเดชเตเดชเตเดเต, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดธเดเตเดเตเตผเดฃเดคเดเตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเดจเตเดณเตเดณ เดเดเตเดฐเดนเดคเตเดคเดฟเดจเตเดฑเต เด เดญเดพเดตเด.
เดชเตเดกเตเดฎเดพเตป เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เด เดจเตเดฏเตเดเตเดฏเดค เดจเตฝเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดคเดฟเดจเต เดเดฐเต เดชเตเดฐเดงเดพเดจ เดจเตเดเตเดเดฎเตเดฃเตเดเต - เด เดงเดฟเด เดเดชเดเดฐเดฃเดเตเดเตพ เดเตพเดชเตเดชเตเดเต (เดฌเดฟเตฝเดกเดฏเตเด เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเด) เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดเดณเตเดฎเดพเดฏเตเดณเตเดณ เด เดจเตเดฏเตเดเตเดฏเดค. เด เดคเดฟเดจเดพเตฝ, เดเตเดฒเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดเดชเดเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดคเดฟเดฐเดเตเดเตเดเตเดชเตเดชเดฟเดจเต เดเดพเตป เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเตฝ เดธเดฎเตเดชเดฟเดเตเดเตเด: เดเตเดฑเดฟเดฏ เดเตเดฎเตเดเตพเดเตเดเดพเดฏเดฟ, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดฌเดเดฑเตเดฑเดฟเตฝ - เดกเตเดเตเดเตผ (เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดฐเต เดเตเดเตเดเด เดฎเตเดกเต เดเดณเตเดณเดคเต), เดเดฐเต เดธเตเดตเดเดพเดฐเตเดฏ เดฒเตเดเตเดเตฝ เดนเตเดธเตเดฑเตเดฑเดฟเตฝ เดเดจเดฟเดเตเดเดพเดฏเดฟ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต - เดชเตเดกเตเดฎเดพเตป เดธเดเดพเดเตเดเตพ, เดเตเดเดพเดคเต เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด - เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต.
เดญเดพเดตเดฟเดฏเดฟเตฝ เดกเตเดเตเดเดฑเตเดฎเดพเดฏเตเดณเตเดณ เดธเดพเดนเดเดฐเตเดฏเด เดฎเดพเดฑเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดจเดฟเดเตเดเต เดเดฑเดชเตเดชเดฟเดฒเตเดฒ, เดเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด เดตเตผ เดชเดฏเดจเดฟเดฏเตผเดฎเดพเดฐเดพเดฃเต, เดเตเดเดพเดคเต เดเตเดฐเดฎเตเดฃ เดชเดเดฟเดชเดเดฟเดฏเดพเดฏเดฟ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เดชเดเตเดทเต เดชเตเดกเตเดฎเดพเตป, เด เดคเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดชเตเดฐเดพเดฏเตเดฎเดเตพเดเตเดเตเด (เดฒเดฟเดจเดเตเดธเดฟเตฝ เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดเดเต เดเดฒเตเดฒ, เด เดธเดเดฌเตเดฒเดฟเดฏเตเด เดฎเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดชเดฐเดฟเดนเดพเดฐเดเตเดเดณเดพเดฃเต) เดญเดพเดตเดฟ เดเตเดเตเดคเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เด เดเดฃเตเดเตเดคเตเดคเดฒเตเดเตพ เดเตผเดเตเด เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดเดฒเตเดฒเดพเดตเดฐเตเดฏเตเด เดเตเดทเดฃเดฟเดเตเดเตเดจเตเดจเต.
เดชเดฟ.เดเดธเต เดเดเดธเตเดฑเตเดฑเต 3 เดจเต เดเดเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด "
เดฑเดฟเดฒเตเดธเดฟเดจเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดฎเตเตปเดเตเตผ เดเตผเดกเตผ เดตเดฟเดฒ: 5000 RUB. เดจเดฟเดเตเดเตพเดเตเดเต เดกเตเดเตเดเตผ เดตเตเดกเดฟเดฏเต เดเตเดดเตโเดธเต เดชเตเดฐเตเดเตเดฐเดพเด เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด
เด เดตเดฒเดเดฌเด: www.habr.com