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

Docker Pre Hands-on

Docker Pre Hands-on

Dockerハンズオン前の知識編

Daisuke Baba

August 13, 2014
Tweet

More Decks by Daisuke Baba

Other Decks in Technology

Transcript

  1. Docker • OS (linux)ϨϕϧͷԾ૝ԽͰɺLinux KernelΛڞ༗ͨ͠· ·CPUͳͲͷϦιʔεΛίϯςφͱ͍͏୯ҐͰ۠੾Δ͜ ͱ͕Ͱ͖ΔLXC(Linux Containers)ͱ͍͏ٕज़͕ݩωλɻ LXCͷৄࡉ͸Wikipedia΁ •

    Լهͷهࣄ΍DockerͷαΠτΛઌʹݟ͓͍͍ͯͯͩ͘͞ http://www.atmarkit.co.jp/ait/articles/1405/16/ news032.html https://www.docker.com/ Friday, August 29, 14
  2. ຊ೔ͷ಺༰ • DockerͱVagrantͷൺֱ • DockerͱLXCͷҧ͍ • DockerΛOSX/WinͰ࢖͏ • Docker Private

    RegistryͱDocker Hub • DockerͰͷయܕతͳ࡞ۀ • Docker/Boot2docker͋Δ͋Δ Friday, August 29, 14
  3. Docker͸Vagrantͱ Կ͕ҧ͏ʁ - Host OS Guest OS Virtualizat ion Πϝʔδ

    ୯Ґ Docker Linux Linux LXC ίϯςφ Vagrant Linux/BSD/ Windows/ OSX etc. Linux/BSD/ Windows etc. VirtualBox /VMWare/ etc. Ծ૝ Ϛγϯ Friday, August 29, 14
  4. DockerͱLXCͷҧ͍ • LXCʹൺ΂ͯԼهͷ఺ΛڧԽ͍ͯ͠Δͷ͕Docker • Ҡ২ੑɿDocker͑͞ಈ͚͹ίϯςφ͸Ͳ͜Ͱ΋ಈ͘ • ΞϓϦσϓϩΠ໨తɿԾ૝ϚγϯΛಈ͔͢ͷ͕໨తͰ͸ͳ͍ • ΠϝʔδϏϧυͷ࢓૊ΈɿίϯςφΠϝʔδΛ࡞Δ࢓૊ΈΛఏڙ͍ͯ͠ΔɻͰ΋Π ϝʔδΛ࡞ΔͨΊͷπʔϧ͸ͳ͍ͷͰɺ֤ࣗγΣϧͳͲͰ༻ҙ͢Δ͜ͱ

    • ࠩ෼؅ཧɿཤྺͱͱ΋ʹΠϝʔδΛࠩ෼Ͱ؅ཧ͍ͯ͠Δ • Πϝʔδͷ࠶ར༻ɿࠩ෼؅ཧΛར༻ͯ͠೿ੜΠϝʔδΛ࡞Δ͜ͱ͕Ͱ͖Δ • ڞ༗ɿDockerHubͰΠϝʔδΛڞ༗ • πʔϧͷΤίγεςϜɿ৭ʑͭͳ͕Δπʔϧ͕͋Δ • ਖ਼֬ͳઆ໌͸ͪ͜Β→DockerͷFAQ (https://docs.docker.com/faq/) Friday, August 29, 14
  5. Boot2dockerΛೖख͢Δ • WindowsΠϯετʔϥʔ • https://github.com/boot2docker/windows-installer • OSXΠϯετʔϥʔ • https://github.com/boot2docker/osx-installer •

    export DOCKER_HOST=tcp:// 192.168.59.103:2375 Λࢦఆ͢Δͱಁաతʹར༻Ͱ͖Δ(࢒೦ͳ͕Β OSXͷΈ) Friday, August 29, 14
  6. Docker HubͱϓϥΠϕʔτ ϨδετϦ • Docker Hub • ίϯςφΠϝʔδΛڞ༗Ͱ͖Δ • ࣗ෼ͰϏϧυ͠ͳͯ͘Α͍͚ͲɺDL͕ඞཁ

    • Dockerར༻ऀͰڞ༗͢Δ • GitHubͷΑ͏ͳ΋ͷɻιʔεͷ୅ΘΓʹΠϝʔδΛڞ༗͢Δ • ϓϥΠϕʔτϨδετϦ • ݶఆͨ͠ൣғͰΠϝʔδΛڞ༗Ͱ͖Δ • ӬଓԽ෦෼ΛS3ͳͲ৭ʑબ୒Ͱ͖Δ Friday, August 29, 14
  7. DockerϨδετϦ Private Object Storage (S3/Azure Storage/etc.) Docker Registry Container Docker

    Private Registry Listening on localhost:5000 Docker Hub hub.docker.com Friday, August 29, 14
  8. DockerϨδετϦ Private Object Storage (S3/Azure Storage/etc.) Docker Registry Container Docker

    Private Registry Listening on localhost:5000 Docker Hub hub.docker.com શར༻ऀͰ ڞ༗͢ΔϦϙδτϦ Friday, August 29, 14
  9. DockerϨδετϦ Private Object Storage (S3/Azure Storage/etc.) Docker Registry Container Docker

    Private Registry Listening on localhost:5000 Docker Hub hub.docker.com ಛఆͷൣғ಺ ʢࣾ಺ͳͲʣͰڞ༗͢ΔϦ ϙδτϦ Friday, August 29, 14
  10. DockerϨδετϦ Private Object Storage (S3/Azure Storage/etc.) Docker Registry Container Docker

    Private Registry Listening on localhost:5000 Docker Hub hub.docker.com ϓϥΠϕʔτ ϨδετϦͷ࣮ࡍͷอ ଘ৔ॴ Friday, August 29, 14
  11. DockerͰͷ࡞ۀ • DockerΛར༻͢Δ࡞ۀͷయܕ • ΠϝʔδΛ࡞Δ→Docker༻ޠͰ͸Ϗϧυͱ͍͏ɻbuildίϚϯυ • ίϯςφΛىಈ͢Δ→runίϚϯυ • ίϯςφ΁઀ଓ͢Δ→attachίϚϯυ •

    ίϯςφΛࢭΊΔ→killίϚϯυ • ఀࢭͨ͠ίϯςφΛࣺͯΔ→rmίϚϯυ • ΠϝʔδΛࣺͯΔ→rmiίϚϯυ • ىಈதɾఀࢭதͷίϯςφΛΈΔ→ps/inspectίϚϯυ Friday, August 29, 14
  12. Docker͋Δ͋Δ • ίϯςφʹSSHͨ͘͠ͳΔ • ༨ܭͳϓϩηεΛ্͛ΔͱίϯςφͷϦιʔεΛ৯͏ͷ Ͱجຊ͠ͳ͍΄͏͕Α͍ɻͰ΋΋ͪΖΜsshdΛ্ཱͪ͛ Δ͜ͱ͸Մೳ • 1ίϯςφʹ1ϓϩηεΛ৺͕͚Δɻ͠ΐ͏͕ͳ͍࣌͸ఘ ΊΔ

    • ঢ়ଶʹґଘ͠ͳ͍ίϯςφ಺ͷϑΝΠϧ΍؀ڥม਺ͷΈ ؔ৺͕͋Δ৔߹͸ɺίϚϯυʹγΣϧ(/bin/sh -c /bin/bash ͳͲ)Λࢦఆͯ͠run͢Ε͹ίϯςφͷதΛௐ΂ΒΕΔ Friday, August 29, 14
  13. Docker͋Δ͋Δ • ίϯςφΛࢭΊͨΒಉ࣌ʹΫϦʔϯͨ͘͠ͳΔ • docker killͱrmΛผʑʹߦ͏ͷ͸໘౗ • -nameͰ໊લࢦఆ͍ͯ͠ͳ͍࣌͸ɺawk΍cut ͳͲΛ࢖ͬͯίϯςφIDΛಛఆ͢Δ ྫʣ

    CONTAINER_ID=`docker ps | grep $1 | awk -F' ' '{ print $1 }'` docker kill ${CONTAINER_ID}; docker rm ${CONTAINER_ID} docker kill <-name>;docker rm <-name> Friday, August 29, 14
  14. Docker͋Δ͋Δ • DBίϯςφΛམͱͯ͠ফ͢ͱσʔλ΋ফ͑Δ • ϑΝΠϧͳͲ͸σʔλઐ༻ίϯςφΛ࡞੒ͯͦ͠ΕΛڞ༗͢Δ (ग़యɿhttps://docs.docker.com/userguide/dockervolumes/#creating- and-mounting-a-data-volume-container) • ͨͩͦ͠ͷίϯςφ΋མͱͨ͠ޙrm͢Δͱσʔλ͸ফ͑Δ •

    όοΫΞοϓΛऔΔ৔߹͸ɺσʔλઐ༻ίϯςφܦ༝Ͱϗετ Ϛγϯ΁ॻ͖ग़͢ͳͲ໌ࣔతͳॲཧΛߦ͏͜ͱ (ग़యɿhttps://docs.docker.com/userguide/dockervolumes/#backup- restore-or-migrate-data-volumes) Friday, August 29, 14
  15. Docker͋Δ͋Δ • ίϯςφىಈ࣌ʹଞͷίϯςφͷIPΞυϨεΛࢦఆͯ͠ى ಈ͢Δ • ܨ͍͛ͨίϯςφ͸ىಈ࣌ʹlink͓ͯ͘͠ • ͦ͏͢Δͱɺίϯςφىಈ࣌ʹ؀ڥม਺ͰIPΞυϨε ΍ϙʔτΛऔಘͰ͖Δ •

    ىಈγΣϧ·ͨ͸εΫϦϓτ಺Ͱ؀ڥม਺ܦ༝Ͱ৘ใ Λऔಘ͢Δ͜ͱ͕Ͱ͖Δ • ग़యɿhttps://docs.docker.com/userguide/dockerlinks/ Friday, August 29, 14
  16. Docker͋Δ͋Δ • linkઃఆͤͣʹࠓىಈ͍ͯ͠ΔίϯςφͷIPΛ஌Γ ͍ͨ • SkyDNSͱSkyDockΛ࢖͏ • ίϯςφͷىಈɾఀࢭ࣌ʹউखʹDNSઃఆͯ͠ ͘ΕΔ •

    ίϯςφىಈ࣌ʹ --dnsࢦఆ͢Δ͜ͱ • ग़య:https://github.com/crosbymichael/skydock Friday, August 29, 14
  17. Boot2docker͋Δ͋Δ • Boot2dockerΛऴྃ (down/poweroff) ͤ͞ΔͱҰ෦ͷঢ়ଶ͕ফ͑Δ • Boot2dockerͷঢ়ଶ͸ɺ໌ࣔతʹอଘ͠ͳ͚Ε͹ফ͑Δ ʢEC2ͷTerminate͔Stopͷҧ͍ʣ ྫʣboot2docker save

    • ͨͩ͠ɺEBSͷΑ͏ͳϘϦϡʔϜ(/dev/sda1)ʹอଘ͢Ε͹ σʔλ͸࢒Δ →ಈ࡞தɺఀࢭதͷίϯςφ΍Πϝʔδ͸ͪ͜Βʹอଘ͞ΕΔ • tce-loadͰΠϯετʔϧ͢ΔΞϓϦ͸ϘϦϡʔϜ্ʹ͸࢒Βͳ ͍ʢrootfsʹه࿥͞ΕΔʣͷͰΠϯελϯεΛམͱ͢ͱফ͑Δ Friday, August 29, 14
  18. ࣍ճ४උ • Docker·ͨ͸Boot2docker/VirtualBoxͷΠϯετʔϧ (version 1.1.2) • OSX Boot2dockerϢʔβʔͷΈ • DOCKER_HOSTΛઃఆ͓ͯ͘͠

    • BitBucket͔Βprivate-dockerfilesͷclone • ϋϯζΦϯPDFهࡌͷ࡞ۀ಺༰ͷ͏ͪࣗ෼ͰਐΊΒΕ Δ΋ͷ͸ߦ͓͍͍ͬͯͯͩ͘͞ →μ΢ϯϩʔυ͕ूத͢ΔͷΛආ͚ΔͨΊ Friday, August 29, 14