Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dockerよちよち歩きハンズオン / Docker hands-on for beginners

ihcomega56
October 05, 2021

Dockerよちよち歩きハンズオン / Docker hands-on for beginners

ihcomega56

October 05, 2021
Tweet

More Decks by ihcomega56

Other Decks in Technology

Transcript

  1. %PDLFS
    ΑͪΑͪา͖
    ϋϯζΦϯ

    View Slide

  2. 2
    ࣗݾ঺հ
    Α͜ͳ "ZBOB:PLPUB
    • +'SPHͷ%FWFMPQFS"EWPDBUF
    • લ৬·Ͱ͸ओʹόοΫΤϯυͷ։ൃ
    ʢ4*FS ޿ࠂձࣾ ূ݊ελʔτΞοϓʣ
    • ࠷ۙɺੜ·ΕͯॳΊͯಉ͡өըΛ౓؍ͨ
    !"#$$%&'
    (#)*+,%-.

    View Slide


  3. ʮΑͪΑͪา͖ʯγϦʔζ
    ಛ௃
    • ʮ͸͡ΊͷҰาʯͷ࣍ͷεςοϓʂ
    • ʮ͸͡ΊͷҰาʯͰֶΜͩ಺༰ʹ͍ͭͯखΛಈ͔ͯ͠ΈΔ
    • ໢ཏతʹԿͰ΋΍ͬͯΈΔͷͰ͸ͳ͘ɺ·ͣ͸͡Ίʹඞཁͳ
    ػೳɾૢ࡞Λ༏ઌ͢Δ
    લఏ஌ࣝ
    • %PDLFS͸͡ΊͷҰา
    IUUQTTQFBLFSEFDLDPNJIDPNFHBUIFGJSTUTUFQPGEPDLFS

    View Slide


  4. %PDLFSͷ؆୯ͳ͓͞Β͍

    View Slide


  5. %PDLFSͷΞʔΩςΫνϟ
    • %PDLFSσʔϞϯ͕ίϯςφͷ؅ཧ΍࣮ߦΛߦ͏
    • Ϣʔβʔ͸%PDLFSΫϥΠΞϯτͱ΍ΓͱΓ͢Δ͜ͱͰؒ઀తʹ
    σʔϞϯͰ΍Γ͍ͨ͜ͱΛ࣮ݱ͢Δ
    • ೔ʑͷ։ൃΛ͢Δ্ͰσʔϞϯͱΫϥΠΞϯτͷҧ͍͸͋·Γ
    ҙࣝ͠ͳ͍
    %PDLFS
    ΫϥΠΞϯτ
    %PDLFSσʔϞϯ
    ίϯ
    ςφ
    ίϯ
    ςφ
    ίϯ
    ςφ
    ίϚϯυΛ
    ࢖͏
    %PDLFSΤϯδϯ

    View Slide

  6. • ίϯςφΛ࡞੒͢ΔͨΊͷ໋ྩ͕ೖͬͨύοέʔδ
    • طʹଘࡏ͢Δ΋ͷΛ࢖͏͜ͱ΋ɺ࡞Δ͜ͱ΋Ͱ͖Δ
    • Πϝʔδ͕࣮ߦঢ়ଶʹͳͬͨΠϯελϯε͕ίϯςφ

    %PDLFSΠϝʔδ
    %PDLFS
    Πϝʔδ
    ࣮ߦ؀ڥͱͯ͠"MQJOF ܰྔͷ-JOVY
    Λ࢖ͬͯʂ
    +BWBͱ(SBEMFΛΠϯετʔϧͯ͠ʂ
    ࣮ߦϑΝΠϧ͸͜ͷσΟϨΫτϦʹ഑ஔͯ͠ʂ
    +BWBΞϓϦέʔγϣϯΛ࣮ߦͯ͠ʂ

    View Slide


  7. ·ͣ͸ެ։͞Ε͍ͯΔ
    ΠϝʔδΛ࢖ͬͯΈΑ͏

    View Slide


  8. %PDLFS)VC͔ΒΠϝʔδΛऔಘ
    %PDLFSΠϝʔδΛμ΢ϯϩʔυ͢Δ
    docker pull
    %PDLFSϨδετϦʹϩάΠϯ͢Δ
    docker login
    %PDLFSΠϝʔδΛݕࡧ͢Δ
    docker search

    View Slide

  9. ҎԼͷ͍ͣΕ͔ͰΠϝʔδΛಛఆ͢Δ
    • *%
    • Πϝʔδ໊<λά໊>
    • Πϝʔδ໊

    %PDLFSΠϝʔδͷಛఆɾ࣮ߦ
    ίϯςφΛ࡞੒ɾ࣮ߦ͢Δ
    docker run
    σϑΥϧτ͸ϑΥΞάϥ΢ϯυ
    ࣮ߦɻόοΫάϥ΢ϯυʹ͢Δ
    ʹ͸EΦϓγϣϯΛ͚ͭΔ
    ίϯςφΛ࡞੒͢Δ
    docker create
    ίϯςφΛ࣮ߦ͢Δ
    docker start

    View Slide


  10. खݩͷ੔ཧ
    • ஈʑϩʔΧϧʹΠϝʔδ͕ͨ·͍ͬͯ͘ͷͰ࣌ʑ֬ೝ͠Α͏
    • ͍Βͳ͍΋ͷ͸࡟আ͠Α͏
    %PDLFSΠϝʔδҰཡΛදࣔ͢Δ
    docker images
    %PDLFSΠϝʔδΛ࡟আ͢Δ
    docker rmi
    /012
    3456789
    :;<=>?@

    View Slide


  11. ΠϝʔδΛࣗ෼Ͱ
    ࡞ͬͯΈΑ͏

    View Slide


  12. %PDLFSGJMFͷॻ͖ํ
    FROM nginx:latest
    COPY ./index.html /usr/share/nginx/html/index.html
    ඞͣϑΝΠϧ໊͸%PDLFSGJMFͱ͢Δ
    %PDLFS͕Ϗϧυ༻ϑΝΠϧΛ໊લͰ൑ผ
    ͢ΔͨΊ

    %PDLFSGJMFͰ࢖͑Δ
    ίϚϯυ
    A+*B%&C#D%E
    FGHI914
    JKLMN
    OPH195QR

    View Slide

  13. • FROM ϕʔεͱͳΔΠϝʔδΛࢦఆ͢Δ
    • RUN Ϗϧυ࣌ʹίϯςφ಺ͰίϚϯυΛ࣮ߦ͢Δ
    • ENV ,FZ7BMVFܗࣜͰ؀ڥม਺Λࢦఆ͢Δ
    • ADD, COPY Πϝʔδ಺΁ϑΝΠϧΛίϐʔ͢Δ
    ˠ<ϦϯΫ>"%%ͱ$01:جຊ͸$01:Λ࢖͏
    • CMD, ENTRYPOINT ίϯςφىಈ࣌ʹ࣮ߦ͢ΔίϚϯυ΍Ҿ਺Λ
    ͋
    ࢦఆ͢Δ
    ˠ<ϦϯΫ>$.%ͱ&/53:10*/5ͷ૊Έ߹Θͤ

    جຊతͳ%PDLFSGJMFͷίϚϯυ

    View Slide

  14. • LABEL
    • EXPOSE
    • VOLUME
    • USER
    • WORKDIR
    • ARG
    • ONBUILD
    • STOPSIGNAL
    • HEALTHCHECK
    • SHELL

    ͦͷଞͷ%PDLFSGJMFͷίϚϯυ
    STNUVW
    XYZ[Z>@

    View Slide


  15. Α͘࢖͏ίϯςφͷૢ࡞
    ίϯςφΛҰཡදࣔ͢Δ
    docker ps
    ࣮ߦ

    ఀࢭ

    ίϯςφΛఀࢭ͢Δ
    docker stop
    ίϯςφΛىಈ͢Δ
    docker start
    ࣮ߦதͷίϯςφ಺ͰίϚϯυΛ࣮ߦ͢Δ
    docker exec
    ίϯ
    ςφ
    ࣮ߦதͷίϯςφ಺ͷϩάΛग़ྗ͢Δ
    docker logs
    ίϯςφΛ࡟আ͢Δ
    docker rm
    ର৅͸ఀࢭதͷίϯςφɻ
    ಈ͍͍ͯΔ΋ͷΛࢭΊΔ࣌͸
    GΦϓγϣϯΛ͚ͭΔ
    ͪΐͬͱ͓ͨ͠ࢼ͠΍
    ௐࠪʹ࢖͏͜ͱ͕ଟ͍
    ର৅͸࣮ߦதͷίϯςφɻ
    ࢭ·͍ͬͯΔ΋ͷ΋ݟΔ࣌͸
    BΦϓγϣϯΛ͚ͭΔ

    View Slide


  16. ΞϓϦέʔγϣϯͷίϯςφԽ
    • ݴޠ΍ϑϨʔϜϫʔΫʹΑͬͯ΍Γํ͸ͦΕͧΕ͕ͩɺࢿྉ͸
    ͨ͘͞Μ͋ΔͷͰ ࠷ۙ͸ެࣜυΩϡϝϯτ΋๛෋
    ࢀߟʹͯ͠
    ࣮ݱͰ͖Δ
    • جຊతʹ͸࣍ͷ͍ͣΕ͔ͷํ਑Ͱ%PDLFSGJMFΛॻ͍͍ͯ͘
    • ιʔείʔυΛίϯςφʹίϐʔ͠ɺΠϝʔδͷϏϧυ࣌ʹΞϓϦ
    έʔγϣϯ΋Ϗϧυ͢Δ
    • Ϗϧυͨ͠ΞϓϦέʔγϣϯͷ࣮ߦϑΝΠϧΛίϯςφʹίϐʔ͢Δ

    View Slide


  17. αϯϓϧΞϓϦέʔγϣϯ
    ࣮ߦ
    ϑΝΠϧ
    ιʔε
    ίʔυ
    \]2N0^_
    `[a18N
    8b0NW@
    Ϗϧυ͢Δ
    HSBEMFX CPPU+BS ࣮ߦ͢Δ
    KBWBKBSBQQIBOETPOKBS
    ˞αϯϓϧͷίϯςφ಺Ͱ͸
    KBWB KBSBQQKBS

    View Slide


  18. αϯϓϧΞϓϦέʔγϣϯ
    ࣮ߦ
    ϑΝΠϧ
    ΞϓϦ༻
    ίϯςφ
    ᶃίϐʔ
    ᶄίϯςφ಺Ͱ࣮ߦ
    %#༻
    ίϯςφ
    ᶅσʔλ$36%
    ࠓճ͸औಘͷΈ

    ಉ͡ωοτϫʔΫ಺Ͱ
    ίϯςφΛσΟεΧόϦ
    Ͱ͖ΔΑ͏ʹ͢Δ

    View Slide


  19. %PDLFSΠϝʔδ͸
    ࡞ͬͨΒͪΌΜͱ؅ཧ͠Α͏ʂ

    View Slide


  20. ϩʔΧϧϦϙδτϦʹอ؅
    • ࡞੒ͨ͠Πϝʔδ͸ʮόΠφϦɾϦϙδτϦϚωʔδϟʔʯʹ
    อ؅͠ɺ͔ͦ͜ΒγΣΞ΍࠶ར༻Λ͢Δ
    • ಉ͡%PDLFSGJMFΛԿ౓΋Ϗϧυ͢ΔͷΛආ͚
    ࣌ؒΛઅ໿Ͱ͖Δ
    • ඼࣭͕୲อ͞ΕͨΠϝʔδΛ࢖͍ճͤΔ
    औಘ͢Δ
    อ؅͢Δ
    %PDLFSΠϝʔδΛΞοϓϩʔυ͢Δ
    docker push

    View Slide


  21. ϦϞʔτϦϙδτϦΛհͯ͠औಘ
    • औಘͨ͠Πϝʔδ΋ʮόΠφϦɾϦϙδτϦ
    Ϛωʔδϟʔʯʹอ؅͓ͯ͘͠
    • Ωϟογϡͷ໾ׂΛՌͨ͢
    • ߴ଎ʹऔಘͰ͖Δ
    • ֎෦ϦϙδτϦʹΞΫηε
    Ͱ͖ͳͯ͘΋औಘͰ͖Δ
    औಘͭͭ͠
    อ؅͢Δ

    View Slide


  22. όʔνϟϧϦϙδτϦ
    • ϩʔΧϧϦϙδτϦɾόʔνϟϧϦϙδτϦΛଋͶΔ
    • อ؅΋औಘ΋όʔνϟϧϦϙδτϦʹରͯ͠ૢ࡞͢Ε͹ྑ͍
    ϩʔΧϧ
    ϦϞʔτ
    όʔνϟϧ
    cef=ge2hi
    j_klm[n

    View Slide


  23. %PDLFS)VCͷΞΫηεճ਺੍ݶʹ஫ҙ
    • ແྉϢʔβʔ͸Πϝʔδͷऔಘճ਺ʹ্ݶ͕͋Δ
    • ະೝূͷ৔߹ɺ࣌ؒͰϦΫΤετ·Ͱ
    • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ৔߹ɺ࣌ؒͰϦΫΤετ·Ͱ

    View Slide


  24. %PDLFS)VCͷΞΫηεճ਺੍ݶʹ஫ҙ
    • ແྉϢʔβʔ͸Πϝʔδͷऔಘճ਺ʹ্ݶ͕͋Δ
    • ະೝূͷ৔߹ɺ࣌ؒͰϦΫΤετ·Ͱ
    • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ৔߹ɺ࣌ؒͰϦΫΤετ·Ͱ
    • ՝ۚ·ͨ͸+'SPH"SUJGBDUPSZ Ϋϥ΢υ൛
    Λܦ༝͢Ε͹ɺ੍ݶ
    ͔Βղ์͞ΕΔʂ
    opWQIm
    `qrs
    WQI9

    View Slide


  25. %PDLFS$PNQPTF
    • ෳ਺ͷίϯςφΛఆٛɾ࣮ߦ͢ΔͨΊͷπʔϧίϚϯυͰ
    ·ͱΊͯىಈɾఀࢭͰ͖Δ
    • :".- EPDLFSDPNQPTFZNM
    ͰઃఆΛॻ͖ίϯςφΛ؅ཧ͢Δ
    • %PDLFSGJMFͱ૊Έ߹ΘͤͯϏϧυΛߦ͏͜ͱ΋ɺΠϝʔδ͚ͩ
    ར༻͢Δ͜ͱ΋Ͱ͖Δ
    • %PDLFSGJMFʹهࡌͨ͠ઃఆΛ্ॻ͖͢Δ͜ͱ΋Ͱ͖Δ
    • ઃఆϑΝΠϧ্ͷίϯςφ͕ࢀՃ͢ΔωοτϫʔΫΛઃఆ͢Δ

    View Slide


  26. ͖ͬ͞΍ͬͨ͜ͱ ͓͞Β͍

    ࣮ߦ
    ϑΝΠϧ
    ΞϓϦ༻
    ίϯςφ
    ᶃίϐʔ
    ᶄίϯςφ಺Ͱ࣮ߦ
    %#༻
    ίϯςφ
    ᶅσʔλ$36%
    ࠓճ͸औಘͷΈ

    ಉ͡ωοτϫʔΫ಺Ͱ
    ίϯςφΛσΟεΧόϦ
    Ͱ͖ΔΑ͏ʹ͢Δ

    View Slide


  27. ࠓ͔Β΍Δ͜ͱ̍
    ΞϓϦ༻
    ίϯςφ
    %#༻
    ίϯςφ
    ᶅσʔλ$36%
    ࠓճ͸औಘͷΈ

    ᶄίϚϯυͰॱ൪ʹ
    ىಈ͢Δ
    ಉҰωοτϫʔΫͱͳΔ

    ᶃΠϝʔδऔಘ

    View Slide


  28. ࠓ͔Β΍Δ͜ͱ̎
    ΞϓϦ༻
    ίϯςφ
    %#༻
    ίϯςφ
    ᶅσʔλ$36%
    ࠓճ͸औಘͷΈ

    ᶄίϚϯυͰॱ൪ʹ
    ىಈ͢Δ
    ಉҰωοτϫʔΫͱͳΔ

    ᶃΠϝʔδऔಘ
    EJS
    EJS
    Ϛ΢ϯτ
    ࣮ߦ
    ϑΝΠϧ

    View Slide


  29. ิ଍৘ใ

    View Slide


  30. %PDLFS%FTLUPQ͕༗ྉԽʁ
    • %PDLFSGPS.BD8JOEPXT͕ର৅
    • ·Ͱ੾Γସ͑ͷ༛༧͋Γ
    • ݄υϧʮ1SPʯ υϧʮ5FBNʯ
    υϧʮ#VTJOFTTʯͷϓϥϯ
    • ໊ະຬ͔ͭച্ສυϧະຬͷ
    ૊৫ɺݸਓར༻ɺ044ϓϩδΣΫτ͸
    ແྉͷ··

    View Slide