เบงเบดเบ—เบตเบ—เบตเปˆเบ‚เป‰เบญเบเปเบฅเปˆเบ™ Docker เบžเบฒเบเปƒเบ™ Docker เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเบˆเบฒเบเบกเบฑเบ™

เบชเบฐเบšเบฒเบเบ”เบตเบ—เบธเบเบ„เบปเบ™! เปƒเบ™เบฅเบฒเบง เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบฑเบ™เบเบฒเบงเปˆเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ Docker เปƒเบ™ Docker เปเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบšเบปเบ”เบฎเบฝเบ™เบ™เบตเป‰. เบกเบฑเบ™เป€เบ–เบดเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเบ„เปเบฒเบชเบฑเบ™เบเบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ„เบฑเบ”เบ„เป‰เบฒเบ™เบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ Docker เบžเบฒเบเปƒเบ™ Docker เบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡ Docker daemon socket เบˆเบฒเบเป‚เบฎเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡เปเบฅเบฐเบ™เบตเป‰เบˆเบฐเบžเบฝเบ‡เบžเปเปƒเบ™ 99% เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบต. เปเบ•เปˆเบขเปˆเบฒเบŸเป‰เบฒเบงเบ–เบดเป‰เบก cookies เปƒเบชเปˆเบ‚เป‰เบญเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Docker เบžเบฒเบเปƒเบ™ Docker. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เบกเบตเบซเบผเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบฅเบฐเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™, เบชเบฐเบ™เบฑเป‰เบ™เบ™เบฑเปˆเบ‡เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปเบฅเบฐ straighten เปเบ‚เบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบงเบดเบ—เบตเบ—เบตเปˆเบ‚เป‰เบญเบเปเบฅเปˆเบ™ Docker เบžเบฒเบเปƒเบ™ Docker เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเบˆเบฒเบเบกเบฑเบ™

ะะฐั‡ะฐะปะพ

เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบ•เบญเบ™เปเบฅเบ‡เป€เบ”เบทเบญเบ™เบเบฑเบ™เบเบฒเบ—เบตเปˆเบเบปเบ™เบ•เบปเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบŠเบปเปˆเบฒเปƒเบ™เบฅเบฒเบ„เบฒ 5 เป‚เบ”เบฅเบฒเปƒเบ™ Digital Ocean, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเปเบŠเปˆเปเบ‚เบ‡เบเป‰เบญเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ Docker เป„เบ”เป‰เป€เบ•เบตเบกเป€เบ•เบฑเบกเบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบ”เบ—เบตเปˆเบกเบตเบ—เบฑเบ‡เบซเบกเบปเบ” 24 gigabytes เบเบฑเบšเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบ–เบฑเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เบ„เบงเบฒเบกเบšเปเปˆเบžเปเปƒเบˆเปเบกเปˆเบ™เบงเปˆเบฒเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบŠเบปเปˆเบงเบ„เบฒเบงเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบทเบเบญเบšเปƒเบซเบกเปˆเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบ‚เบฝเบ™ Shell scripts เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ cron เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบ: เบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบฑเบ™เบซเบกเบปเบ”เป„เบ›เบขเปˆเบฒเบ‡เบซเบฅเบตเบเบฅเป‰เบฝเบ‡เบšเปเปˆเป„เบ”เป‰เบเบฑเบšเบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ–เบทเบเบเบดเบ™เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเป‰เบญเบ (เบ”เบตเบ—เบตเปˆเบชเบธเบ”). เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เปเบฅเปˆเบ™ Jenkins เปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบฅเบฐเบฅเบถเบšเบ—เปเปˆเบเปเปˆเบชเป‰เบฒเบ‡เบœเปˆเบฒเบ™ socket daemon docker เบ—เบตเปˆเบชเบปเปˆเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบกเบฑเบ™. เบ‚เป‰เบญเบเบกเบฑเบเบ„เบงเบฒเบกเบ„เบดเบ”, เปเบ•เปˆเบ‚เป‰เบญเบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป„เบ›เบ•เบทเปˆเบกเบญเบตเบเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ—เบปเบ”เบฅเบญเบ‡เปƒเบŠเป‰ Docker เป‚เบ”เบเบเบปเบ‡เบžเบฒเบเปƒเบ™ Docker. เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เปƒเบ™เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบš Docker เปเบฅเบฐเบชเป‰เบฒเบ‡เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบžเบฒเบเปƒเบ™เบ–เบฑเบ‡เบญเบทเปˆเบ™ (เปƒเบซเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ–เบฑเบ‡เบšเบฑเบ™เบˆเบธ). เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบšเบฑเบ™เบˆเบธ staging เบ”เป‰เบงเบเบ—เบธเบ‡ -rm, เป€เบŠเบดเปˆเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฐเบฅเบถเบšเบ–เบฑเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบกเบฑเบ™เป€เบกเบทเปˆเบญเบกเบฑเบ™เบ–เบทเบเบขเบธเบ”. เบ‚เป‰เบญเบเบ„เบดเบ”เบเบฑเบšเบฎเบนเบšเบžเบฒเบš Docker เบˆเบฒเบ Docker เป€เบญเบ‡ (https://hub.docker.com/_/docker), เปเบ•เปˆเบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบตเปˆเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบเบตเบ™เป„เบ›เปเบฅเบฐเบ‚เป‰เบญเบเบšเปเปˆเป€เบ„เบตเบเบˆเบฑเบ”เบเบฒเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ—เบตเปˆเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ‚เป‰เบญเบเบขเบฒเบเป„เบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡.

เบ›เบฐเบ•เบดเบšเบฑเบ”. เป‚เบเบ™

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

  1. เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบง Docker container เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš.

    docker run --privileged -it docker:18.09.6

    เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบžเบฒเบŠเบฐเบ™เบฐ, เบเป‰เบฒเบงเบ‚เบงเบฒเบซเบผเบทเบŠเป‰เบฒเบเปเบฅเบฐ DinD เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบเบฒเบเป€เบ›เบฑเบ™เบœเบฑเบ. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เบˆเบฐเปเบ•เบเบซเบฑเบเป€เบฅเบทเป‰เบญเบเป†เป€เบกเบทเปˆเบญเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.
    เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ™เบ—เบตเบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบเบฐ.

  2. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเบงเปˆเบฒ containers เปƒเบ”เบเปเบฒเบฅเบฑเบ‡เปเบฅเปˆเบ™ (เบ„เปเบฒเบ•เบญเบš: none), เปเบ•เปˆเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบ™เบงเปƒเบ”:

    docker ps

    เป€เบˆเบปเป‰เบฒเบˆเบฐเปเบ›เบเปƒเบˆเป€เบฅเบฑเบเบ™เป‰เบญเบ, เปเบ•เปˆเบ›เบฐเบเบปเบ”เบงเปˆเบฒ Docker daemon เบšเปเปˆเป„เบ”เป‰เปเบฅเปˆเบ™:

    error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 
    192.168.65.1:53: no such host

  3. เปƒเบซเป‰เปเบฅเปˆเบ™เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡:

    dockerd &

    เบ„เบงเบฒเบกเปเบ›เบเปƒเบˆเบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡:

    failed to start daemon: Error initializing network controller: error obtaining controller instance: failed 
    to create NAT chain DOCKER: Iptables not found

  4. เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ” iptables เปเบฅเบฐ bash (เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเบธเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™ bash เบเบงเปˆเบฒเปƒเบ™ sh):

    apk add --no-cache iptables bash

  5. เปƒเบซเป‰เป€เบ›เบตเบ” bash. เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบขเบนเปˆเปƒเบ™เปเบเบฐเบ›เบปเบเบเบฐเบ•เบด

  6. เบกเบฒเบฅเบญเบ‡เปเบฅเปˆเบ™ Docker เบญเบตเบเบ„เบฑเป‰เบ‡:

    dockerd &

    เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เป€เบšเบดเปˆเบ‡โ€‹เปเบœเปˆเบ™โ€‹เบเบฒเบงโ€‹เบ‚เบญเบ‡โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เป‰เบฒเบโ€‹เบ”เป‰เบงเบโ€‹:

    INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization          
    INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sock

  7. เบเบปเบ” Enter. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบขเบนเปˆเปƒเบ™ bash เป„เบ”เป‰.

เบˆเบฒเบเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบžเบฐเบเบฒเบเบฒเบกเป€เบ›เบตเบ”เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบญเบทเปˆเบ™เบžเบฒเบเปƒเบ™ Docker container เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง Docker container เบญเบทเปˆเบ™เบžเบฒเบเปƒเบ™ Docker container เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบซเบผเบทเบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐ container crash? เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบตเบเบ„เบฑเป‰เบ‡.

เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบ–เบฑเบ‡ DinD เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปƒเบซเบกเปˆ

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

https://github.com/alekslitvinenk/dind

เบเบฒเบ™เปเบเป‰เป„เบ‚ DinD เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เปƒเบซเป‰เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Docker เบžเบฒเบเปƒเบ™ Docker recursively เปเบฅเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบœเบฐเบˆเบปเบ™เป„เบžเบซเบผเบฒเบเบ‚เบถเป‰เบ™.
เบ‚เป‰เบญเบเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง (เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”) เบเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ MySQL เปเบฅเบฐ Nodejs เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.
เบ„เบงเบฒเบกเบญเบปเบ”เบ—เบปเบ™เบ—เบตเปˆเบชเบธเบ”เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบกเบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰

เบซเบผเบดเป‰เบ™เบงเบดเบ”เบตเป‚เบญ

เบชเบฐเบ™เบฑเป‰เบ™, เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™:

  1. เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบง DinD เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เปƒเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ DinD เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เปเบœเบ™เบ—เบตเปˆ ports เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบฅเบนเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ (เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰เบขเบนเปˆเปเบฅเป‰เบง)

    docker run --privileged -it 
    -p 80:8080 
    -p 3306:3306 
    alekslitvinenk/dind

    เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™ bash เป„เบ”เป‰โ€‹, เบˆเบฒเบโ€‹เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบžเบฒโ€‹เบŠเบฐเบ™เบฐโ€‹เป€เบ”เบฑเบโ€‹เบ™เป‰เบญเบโ€‹.

  2. เป€เบ›เบตเบ” MySQL:

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql

  3. เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ.

  4. เป€เบ›เบตเบ”เบ•เบปเบงเบ–เบฑเบ‡เบ—เบตเบชเบญเบ‡:

    docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server

    เบเบฐโ€‹เบฅเบธโ€‹เบ™เบฒโ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เบžเบญเบ”โ€‹เบˆเบฐโ€‹เปเบกเปˆเบ™โ€‹เปเบ—เป‰โ€‹ 8080:8080, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบžเบญเบ” 80 เบˆเบฒเบเป‚เบฎเบชเป„เบ›เบซเบฒเบžเบฒเบŠเบฐเบ™เบฐเบซเบผเบฑเบเป„เบ›เบซเบฒเบžเบญเบ” 8080 เปเบฅเป‰เบง.

  5. เบžเบงเบเป€เบฎเบปเบฒเป„เบ›เบซเบฒ localhost เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡ "เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ!"

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบš Docker containers เบ—เบตเปˆเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบฒเบ‡เบšเบงเบเปเบฅเบฐเบ‚เป‰เบญเบเบˆเบฐเบชเบทเบšเบ•เปเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบเบงเปˆเบฒ Kubernetes เปเบฅเบฐ Jenkins X. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบกเบทเป‰เบ™เบตเป‰. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Docker recursively เปƒเบ™ Docker เปเบฅเบฐ mounting directory เป€เบฅเบดเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡เบšเบฑเบ™เบˆเบธ.

PS เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เบเบฐเบฅเบธเบ™เบฒเปƒเบซเป‰เบกเบฑเบ™เบ”เบฒเบงเบขเบนเปˆเปƒเบ™ GitHub, เบชเป‰เบญเบกเบกเบฑเบ™เปเบฅเบฐเบšเบญเบเบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ”เบฑเบ”เปเบเป‰ 1 เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ 2 เบงเบดเบ”เบตเป‚เบญ

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

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster