‫นี่จะเป็นการบรรยายครั้งแรกที่เราจะใช้หลายโฮสต์หรือโหนดหรือกรณีหรือสิ่งที่คุณต้องการ ...
‫หลายระบบปฏิบัติการ
‫เราจะตั้งค่า 3 โหนดในทั้งสามโหนดเหล่านั้น
‫ขออภัยที่เราไม่สามารถทำส่วนนี้กับ Docker
‫ในตัวบนเครื่องของคุณได้เพราะจะให้ระบบปฏิบัติการเดียวเท่านั้น เราต้องการระบบปฏิบัติการ Linux สามระบบเพื่อเล่นกับคุณสมบัติชุดต่อไปนี้
‫ตัวเลือกแรกที่คุณจะมีคือใช้ play-with-docker ดอทคอม
‫มันเป็นวิธีที่ง่ายที่สุดในการเริ่มต้น
‫มันมาพร้อมกับ Docker ที่ติดตั้งไว้ล่วงหน้า
‫ใช้เวลาเพียงไม่กี่วินาทีในการจัดเตรียมสามเครื่องที่แตกต่างกันและไม่ต้องลงทุนในตอนท้าย แต่มันหมายความว่าทุก ๆ สี่ชั่วโมงมันจะเช็ดงานทั้งหมดที่คุณทำ
‫ดังนั้นหากคุณคิดว่าคุณจะทำส่วนที่เหลือของส่วนนี้ในช่วงเวลานี้อาจเป็นตัวเลือกที่ดีที่สุดสำหรับคุณ
‫แต่ถ้าคุณจะโฟกัสไปสองสามชั่วโมงคุณจะสามารถผ่านหลาย ๆ โหนดได้อย่างเต็มที่โดยใช้ Play With Docker ในการนั่งเพียงครั้งเดียว
‫ตัวเลือกอื่นที่คุณมีคือคุณสามารถใช้เครื่องเทียบท่าซึ่งไม่ใช่สิ่งที่เราได้พูดถึง แต่เป็นเครื่องมือบรรทัดคำสั่งที่ติดตั้งจริงด้วย Docker สำหรับ
‫Windows และ Docker สำหรับ Mac
‫คุณสามารถดาวน์โหลดสำหรับ Linux และเป็นเครื่องมืออัตโนมัติสำหรับการจัดเตรียมเครื่องเสมือนในเครื่องและในอินเทอร์เน็ตจากนั้นตั้งค่า
‫Docker ให้คุณโดยอัตโนมัติ
‫วิธีการเริ่มต้นที่ใช้งานได้กับ VirtualBox ซึ่งคุณสามารถติดตั้งได้ฟรี แต่หมายความว่าหากคุณจะใช้เครื่องเสมือนสามเครื่องในเครื่องแต่ละเครื่องอาจต้องใช้
‫RAM สักตัวหรือเพื่อให้ทำงานผ่านตัวอย่างมากมายเหล่านี้
‫ดังนั้นคุณจะต้องใช้เครื่องที่มี RAM ในปริมาณที่เหมาะสม
‫ตัวเลือกอื่นและสิ่งที่ฉันจะเริ่มต้นสำหรับการสาธิตและเดินผ่านเหล่านี้เป็นจำนวนมากก็คือ DigitalOcean
‫ฉันแนะนำ DigitalOcean เพียงเพราะพวกเขามีบริการที่ถูกที่สุดและง่ายที่สุดในการเริ่มต้นและพวกเขาทำงานทุกอย่างบน SSD
‫ดังนั้นจึงเป็นเรื่องที่ดีและรวดเร็ว
‫คุณสามารถใช้สิ่งนี้ในการตั้งค่าที่คล้ายกันมากกับการผลิตที่เป็นเพราะคุณใช้เครื่องเสมือนจริงสามเครื่องในคลาวด์และใช้เวลาประมาณหนึ่งนาทีในการเปิดตัวเครื่องเสมือนแต่ละเครื่อง
‫หากคุณคิดว่าอาจเป็นตัวเลือกคุณสามารถใช้รหัสผู้อ้างอิงของฉันและการอ้างอิงถึงส่วนนี้เพื่อรับฟรี 10
‫เหรียญแรก
‫หากคุณจะใช้เวลาสองสามวันในการผ่านสิ่งต่าง ๆ มากมายคุณสามารถจัดเตรียมโหนสาม, $
‫10 ต่อเดือนและให้พวกมันพร้อมสำหรับวันหรือสัปดาห์
‫และอาจเหมาะสมกับงบประมาณ $ 10 ดังนั้นในทางเทคนิคแล้วคุณไม่ต้องเสียค่าใช้จ่ายอะไรเลย
‫และสุดท้ายมีหลายวิธีในการติดตั้ง Docker และนั่นคือทั้งหมดที่คุณต้องการคือเครื่องสามเครื่องที่ติดตั้ง Docker
‫ไว้ คุณสามารถใช้ Docker Machine
‫มันมีไดรเวอร์ในตัวที่อนุญาตให้คุณใช้เพื่อจัดเตรียมอินสแตนซ์ Amazon หรือ Azure instance หรือ DigitalOcean Droplets หรือ
‫Google Compute nodes หรือที่ใดก็ตามที่คุณสามารถรับเครื่องเสมือน Linux คุณสามารถติดตั้ง Docker ด้วยสคริปต์อัตโนมัติจาก
‫ได้รับ นักเทียบท่า ดอทคอม
‫ตรงไปตรงมาฉันชอบที่จะได้รับ นักเทียบท่า com version
‫เท่านั้นเนื่องจาก Docker Machine อาจช่วยคุณประหยัดได้ไม่กี่ขั้นตอนโดยเฉพาะอย่างยิ่งสำหรับสถานที่อย่าง Amazon และ Azure
‫ที่ต้องการให้คุณจัดเตรียมสิ่งต่าง ๆ มากมายก่อนที่คุณจะสามารถจัดหาเครื่องเสมือนได้ แต่คุณอาจจะไม่ได้ใช้ Docker Machine
‫ในการผลิต
‫มันเป็นเครื่องมือในการทำให้สภาพแวดล้อม dev และทดสอบอัตโนมัติ
‫ไม่เคยได้รับการออกแบบมาเพื่อตั้งค่าการตั้งค่าการผลิตทั้งหมดที่คุณอาจต้องใช้สำหรับโหนดแบบหลายโหนด
‫ไม่มีอะไรผิดปกติกับมัน แต่โดยทั่วไปจะได้รับ นักเทียบท่า com
‫ใช้งานได้กับลีนุกซ์รุ่นใหญ่ ๆ และไม่ใช้เวลานานกว่าการใช้งาน Docker Machine
‫ฉันจะยกตัวอย่างให้คุณอย่างรวดเร็วเพียงแค่นำสถานการณ์เหล่านี้ไปยังจุดที่ติดตั้ง Docker
‫จากนั้นพวกเขาทั้งหมดจะคล้ายกันมากในวิธีที่เราสร้างกลุ่มและบริการของเรา
‫ดังนั้นอย่าคิดว่าคุณต้องทำอย่างที่ฉันทำ
‫ที่จริงแล้วเราแค่พยายามรับข้อมูลนักเทียบท่าเพื่อนำข้อมูลกลับมาใช้จริงและจากนั้นเพื่อให้แน่ใจว่าทั้งสามโหนดมีการเข้าถึงเครือข่ายซึ่งกันและกันและพวกเขาอยู่ในเครือข่ายที่เชื่อมต่อกันดี
‫ดังนั้นควรจะอยู่ในเครือข่ายเดียวกัน
‫หากคุณกำลังจะใช้ Play With Docker คุณเพียงไปที่ play-with-docker com และตรวจสอบบนกล่องสำหรับฉันไม่ใช่หุ่นยนต์
‫และถ้ามันให้หน้าจอ CAPTCHA ให้คุณทำตาม
‫เอาล่ะ คุณจะเห็นว่ามันนับถอยหลังสี่ชั่วโมง
‫แต่ถ้าฉันคลิกสร้างอินสแตนซ์จากนั้นฉันคลิกอีกสองครั้งมันจะสร้างสภาพแวดล้อมเสมือนจริงสามแห่งอย่างรวดเร็ว
‫ในฐานะที่เป็นข้อความด้านข้างนี่คือการใช้งาน Docker ใน Docker ซึ่งเป็นเทคโนโลยีที่ค่อนข้างเรียบร้อยซึ่งเราใช้งาน
‫Docker ภายในคอนเทนเนอร์ Docker
‫แต่ในการตั้งค่านี้ด้วย Play With Docker ซึ่งสร้างโดยกัปตัน Docker
‫คนอื่นและทีมนักเทียบท่ามันยากที่จะบอกความแตกต่าง
‫ถ้าฉันไปที่ node1 ฉันเห็นแล้วว่าข้อมูล Docker ให้เวอร์ชันล่าสุด และถ้าฉันพยายาม
‫ping node2 มันก็จำชื่อที่เป็นมิตรได้ง่ายดังนั้นมันจะทำให้การสื่อสารไปมาระหว่างพวกเขาง่ายขึ้น
‫ดังนั้นหากนี่เป็นสิ่งที่คุณต้องการลองมันเป็นวิธีที่ยอดเยี่ยมและง่ายสำหรับเครื่องที่ใช้พลังงานต่ำหรือหากคุณไม่ต้องการใช้เวลาในการตั้งค่าสภาพแวดล้อมสำหรับสี่ชั่วโมงถัดไป
‫ตัวเลือกที่สองคือการใช้นักเทียบท่าเครื่อง หากคุณติดตั้งแล้วควรเป็นเวอร์ชั่น 10 อย่างน้อยถ้าไม่ใช่เวอร์ชั่นใหม่
‫คุณจะทราบว่ามีการติดตั้งหรือไม่เพราะคุณจะพิมพ์คำสั่ง docker-machine
‫จากบรรทัดคำสั่งของคุณและจะใช้งานไม่ได้
‫หากคุณต้องการดาวน์โหลดสำหรับระบบปฏิบัติการ Linux ของคุณโดยเฉพาะคุณสามารถข้ามไปที่ Docker Documentation ซึ่งจริง
‫ๆ แล้วจะทำให้คุณได้เส้นโค้งที่รวดเร็วในการดาวน์โหลด
‫หากคุณกำลังใช้ ToolBox บน Windows 7 และ 8 หรือ Docker สำหรับ Windows บน Windows 10
‫หรือ Docker สำหรับ Mac บน Mac OS มันจะเป็นเวอร์ชันล่าสุดของระบบปฏิบัติการเหล่านั้นแล้ว
‫หากคุณต้องการใช้ตัวเลือก VirtualBox ซึ่งเป็นค่าเริ่มต้นคุณเพียงแค่ต้องข้ามไปที่ VirtualBox
‫org และดาวน์โหลดเวอร์ชันล่าสุดสำหรับระบบปฏิบัติการของคุณ
‫และคุณไม่ต้องทำอะไรกับ VirtualBox
‫มันเพียงแค่ต้องติดตั้ง และจากบรรทัดคำสั่งของคุณคุณสามารถพิมพ์นักสร้างเครื่องสร้างโหนด 1
‫และสิ่งนี้จะทำงานผ่านการสร้างเครื่องเสมือนด้วย BusyBox ซึ่งเป็นการกระจาย Linux
‫ที่เบามาก
‫สิ่งนี้จะทำงานผ่านการสร้างเครื่อง Linux ที่มีน้ำหนักเบามากและคุณเพียงแค่ทำซ้ำสองคำสั่งสำหรับ node2
‫และ 3
‫หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Docker Machine
‫คุณสามารถดูที่ส่วนอ้างอิงของฉันสำหรับลิงก์การสอน
‫เมื่อสร้างเครื่องของคุณแล้วคุณมีสองตัวเลือกสำหรับวิธีการเข้าถึงเครื่องเหล่านั้น
‫คุณสามารถใช้นักเทียบท่าเครื่อง ssh แล้วชื่อของโหนดที่คุณสร้างขึ้นและที่จะกระโดดคุณลงในเครื่องที่
‫หรือคุณสามารถใช้คำสั่ง environment
‫ดังนั้นคำสั่งนักเทียบท่าเครื่อง env แล้วชื่อของเครื่องที่คุณต้องการจะให้คุณออกและคุณสามารถตัดและวางตัวเลือกเหล่านี้ไปยังบรรทัดคำสั่งของคุณหรือคุณสามารถคัดลอกและวางตัวเลือกด้านล่างและที่ จริงสร้างตัวแปรสภาพแวดล้อมเพื่อให้เมื่อฉันเรียกใช้คำสั่งนักเทียบท่าของฉันเพราะอีกครั้ง
‫Docker CLI เพียงแค่ต้องรู้ว่าสิ่งที่โฮสต์
‫Docker จะพูดคุยกับ
‫และโดยค่าเริ่มต้นมันเป็นการพูดคุยกับเครื่องของคุณ
‫แต่นั่นเพิ่งทำการตั้งโปรแกรมใหม่เพื่อคุยกับโหนด Docker Machine
‫1
‫ถ้าฉันทำข้อมูลนักเทียบท่าคุณจะเห็นว่าชื่อของมันคือ node1 เพราะนั่นคือสิ่งที่ฉันกำลังใช้งานจริง
‫สำหรับตัวอย่างสุดท้ายฉันจะใช้ DigitalOcean ซึ่งฉันได้สร้างบัญชี
‫ที่นี่พวกเขาเรียกเซิร์ฟเวอร์หยด ฉันแนะนำถ้าคุณไม่มีเหตุผลเฉพาะในการเรียกใช้ระบบปฏิบัติการอื่นเพื่อเริ่มต้นกับ
‫Ubuntu 16 04 เพราะนั่นเป็นลีนุกซ์รุ่นแรกที่รองรับคุณสมบัติ Docker
‫รุ่นใหม่.
‫นั่นคือค่าเริ่มต้นที่นั่น
‫จากนั้นฉันจะแนะนำสำหรับส่วนที่เหลือของหลักสูตรนี้ให้เราใช้เซิร์ฟเวอร์ $ 10 ต่อเดือน
‫คุณอาจสามารถหนีด้วยเซิร์ฟเวอร์ $
‫5 ต่อเดือน แต่อาจช้าลงเล็กน้อยในระหว่างการสาธิตในภายหลังเมื่อเราทำการตรวจสอบและบันทึกคอนเทนเนอร์ด้านบนของแอปพลิเคชันของเรา
‫จากนั้นคุณสามารถเลือกศูนย์ข้อมูลที่ใกล้กับคุณที่สุด จากนั้นอีกตัวเลือกเดียวคือการเพิ่มคีย์ SSH
‫หากคุณไม่คุ้นเคยกับวิธีการสร้างคีย์ SSH ของคุณในเครื่องจากนั้นอัปโหลดสาธารณะไปยัง
‫DigitalOcean มีบทช่วยสอนที่ดีที่พวกเขามีให้คุณสามารถหาได้จากแหล่งข้อมูลของส่วนนี้
‫ลงไปที่ด้านล่างฉันจะสร้างสามเครื่องและฉันจะเรียกพวกเขาว่าโหนด 1, 2 และ 3
‫จากนั้นฉันต้องรอประมาณ 60 วินาทีและพวกเขาจะพร้อมสำหรับฉัน
‫คุณสามารถใช้ที่อยู่ IP ได้ที่นี่ ... กระโดดขึ้นบนเครื่องเหล่านี้
‫คลิกที่ปุ่มคัดลอกจากนั้น ssh root @ ที่อยู่ IP
‫และหากคีย์ SSH ของคุณได้รับการตั้งค่าอย่างถูกต้องบนเครื่องของคุณมันก็จะเข้าสู่ระบบโดยอัตโนมัติด้วยรหัสนั้น
‫แต่ในส่วนของทรัพยากรฉันได้ยกตัวอย่างวิธีการตั้งค่าให้คุณ ไฟล์ ssh config
‫ที่จะช่วยให้คุณมีสามโหนดในการตั้งค่าเพื่อให้คุณสามารถเรียกพวกเขาว่า node1, node2, node3
‫แทนที่จะต้องจำ IP address ของพวกเขาในกรณีที่คุณจะต้องทำหลายวัน
‫. นั่นเป็นวิธีที่ง่ายในการเข้าและออกจากเซิร์ฟเวอร์เหล่านี้
‫หากคุณใช้เครื่องนักเทียบท่าหรือถ้าคุณใช้การเล่นด้วยนักเทียบท่าจากนั้นนักเทียบท่าจะถูกติดตั้งแล้ว
‫แต่ถ้าคุณใช้ DigitalOcean หรือม้วน VMs ของคุณเองคุณจะต้องติดตั้ง Docker
‫วิธีที่ง่ายที่สุดในการทำเช่นนั้นที่ฉันชอบใช้คือการใช้สคริปต์ในการรับ นักเทียบท่า ดอทคอม
‫คุณสามารถดูตัวอย่างวิธีการใช้สคริปต์นี้ที่นี่เพื่อรับการผลิต Docker รุ่นปัจจุบันบนเครื่องของคุณ
‫ตอนนี้เซิร์ฟเวอร์ของฉันทั้งสามมีการติดตั้ง Docker เวอร์ชันล่าสุดและเราพร้อมที่จะตั้งค่าฝูงของเรา
‫สิ่งที่ต้องมีก็คือโหนดทั้งสามนี้มีเครือข่ายที่มั่นคงต่อกันและพอร์ตเฉพาะเปิดอยู่
‫หากคุณอยากรู้เกี่ยวกับพอร์ตของฝูงมองในทรัพยากรของส่วนนี้ที่ฉันมีลิงค์ไปยังรายการไฟร์วอลล์พอร์ตของตัวเองที่จำเป็นสำหรับ
‫Swarm ในการทำงาน
‫หากคุณจำได้ก่อนหน้านี้เราทำท่าเทียบท่าเริ่มต้น ตอนนี้ในกรณีนี้ซึ่งเป็นเรื่องปกติในเซิร์ฟเวอร์คลาวด์เราต้องการให้เราระบุที่อยู่
‫IP เพื่อโฆษณาบริการ Swarm
‫คุณต้องการใช้ที่อยู่ IP ที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์อื่น ๆ
‫ในกรณีนี้ฉันจะใช้ที่อยู่ IP สาธารณะสำหรับโฮสต์ DigitalOcean ของฉัน
‫และเราไปกันแล้ว
‫จนถึงตอนนี้มันก็เหมือนกับเครื่องจักรของเรา
‫ครั้งนี้ฉันจะคัดลอกคำสั่ง swarm join และไปที่ node2 และเพิ่ม
‫และเราไปกันแล้ว
‫ตอนนี้โหนดนี้เป็นส่วนหนึ่งของฝูง
‫เรากลับไปที่ node1, docker node ls และตอนนี้เรามีสองตัว
‫คุณจะสังเกตเห็นว่าโหนดที่สองเป็นเพียงผู้ปฏิบัติงาน เพราะอย่างที่บอกถ้าเราต้องการให้มันเป็นผู้จัดการเราควรได้รับโทเค็นของผู้จัดการคนนี้
‫แต่ไม่ต้องกังวล
‫เราสามารถอัปเดตผู้ปฏิบัติงานนี้เพื่อส่งเสริมให้เป็นผู้จัดการ
‫แต่ถ้าเราจบด้วย node2 โปรดสังเกตว่าฉันไม่สามารถใช้คำสั่ง Swarm ได้ เพราะคนงานไม่ได้รับสิทธิพิเศษจริงๆ
‫พวกเขาไม่สามารถควบคุมฝูงได้
‫ดังนั้นพวกเขาจะไม่สามารถใช้คำสั่ง Swarm ใด ๆ ที่เราคุ้นเคยเพื่อใช้กับผู้จัดการ
‫กลับไปที่ node1 และผู้จัดการฉันจะทำการปรับปรุงโหนดนักเทียบท่า ...
‫สิ่งที่ฉันทำคือกดปุ่ม Tab เพื่อให้แท็บสมบูรณ์ซึ่งเป็นคุณสมบัติที่ยอดเยี่ยมใน Docker
‫เสมอโดยเฉพาะอย่างยิ่งด้วยคุณสมบัติมากมาย มันทำให้ฉันผ่านแต่ละขั้นตอนของการใช้คำสั่ง update นั้น
‫ตอนนี้ฉันได้ทำการอัพเดตครั้งสุดท้ายเสร็จแล้วและมันได้เปลี่ยน node2
‫ตอนนี้ถ้าฉันทำโหนดตัวเทียบท่าของฉันคุณจะเห็นว่าตอนนี้มันถือว่าสามารถเข้าถึงได้
‫แต่โหนดเดิมยังคงเป็นผู้นำ โดยวิธีการที่เครื่องหมายดอกจันเล็ก ๆ น้อย ๆ ?
‫นั่นหมายความว่าเป็นโหนดที่คุณกำลังพูดคุยอยู่
‫สำหรับ node3 มาเพิ่มเป็นผู้จัดการโดยค่าเริ่มต้น
‫เราต้องกลับไปที่คำสั่งดั้งเดิมของนักเทียบท่าแล้วจากนั้นเราต้องได้รับตัวจัดการโทเค็นเข้าร่วม
‫คุณสามารถรับโทเค็นเหล่านี้ได้ทุกเมื่อ
‫คุณไม่จำเป็นต้องจดบันทึกหรือบันทึกไว้
‫พวกเขาเป็นส่วนหนึ่งของการกำหนดค่าจับกลุ่มและเข้ารหัสไว้ในดิสก์ดังนั้นไม่ต้องกังวลเกี่ยวกับเรื่องนั้น
‫คุณสามารถเปลี่ยนแปลงสิ่งเหล่านี้ได้ในกรณีที่พวกเขาอาจถูกเปิดเผยหรือคุณอาจได้เซิร์ฟเวอร์ที่อาจมีช่องโหว่อยู่และคุณต้องการให้แน่ใจว่าไม่มีโหนดใดที่สามารถเข้าร่วมฝูงจากคีย์เก่าได้ .
‫ฉันจะคัดลอกสิ่งนี้วางลงใน node3
‫และเราไปกันแล้ว กลับไปที่ node1
‫หากฉันทำโหนดตัวเทียบท่าอีกครั้งคุณจะเห็นว่าฉันมีสามโหนด และพวกเขาทั้งหมดมีสถานะผู้จัดการระบุว่าพวกเขาเป็นผู้จัดการ
‫ดังนั้นตอนนี้เรามี 3 โหนดโหนดที่ซ้ำซ้อนพร้อมผู้จัดการสามคน มาทำสิ่งเดียวกันกับที่เราทำไปก่อนหน้านี้บริการนักเทียบท่าสร้างอัลไพน์ปิง 8
‫8 8
‫8 เฉพาะคราวนี้ขอแบ่งเป็นสามแบบ
‫แล้วทำบริการนักเทียบท่าและเราจะเห็นว่าเรามีสามในสามที่เปิดใช้งานอยู่
‫ถ้าฉันเป็นนักเทียบท่าโหนด ps ฉันสามารถเห็นได้ว่าโหนดโลคัลของฉันกำลังใช้งานหรือคอนเทนเนอร์นี้จริง ๆ
‫ฉันสามารถระบุโหนด, node2, และมันจะให้ฉันแค่คอนเทนเนอร์ที่ทำงานบน node2
‫ถ้าฉันต้องการได้รับรายชื่อเต็มฉันสามารถทำบริการนักเทียบท่า ps แล้วสีน้ำตาลง่วงนอนเป็นชื่อที่ให้บริการของเรา
‫และคุณจะเห็นที่นี่ .. ขอผมขยายหน้าจอหน่อย
‫คุณสามารถดูได้ที่นี่ว่ามันแสดงรายการงานทั้งสามของเรา
‫เมื่อคุณสร้างฝูงนี้ขึ้นมาปกติคุณไม่จำเป็นต้องพิมพ์คำสั่งลงในโหนดต่าง ๆ ทั้งหมด
‫คุณสามารถใช้งานฝูงทั้งหมดได้จากโหนด 1
‫ดังนั้นเราจะทำงานหลายอย่างของเราจาก node1 ในการบรรยายในอนาคต แต่สำหรับตอนนี้ตบเบา ๆ
‫ที่ด้านหลังเพราะคุณมีกลุ่มการทำงานเต็มรูปแบบ