1. คำนำ
อาจมีนักเรียนบางคนที่ไม่เข้าใจโครงการ Docker Docker เขียนด้วยภาษา GO มันเป็นโครงการเทคโนโลยีเสมือนจริงที่มีน้ำหนักเบาซึ่งถูกนำไปใช้อย่างรวดเร็ว ช่วยให้นักพัฒนาสามารถบรรจุโปรแกรมของพวกเขาและเรียกใช้สภาพแวดล้อมเข้าด้วยกันและทำให้พวกเขาเป็นภาพนักเทียบท่า (กระจก) ด้วยวิธีนี้ให้ปรับใช้บนเซิร์ฟเวอร์ คุณจะต้องดาวน์โหลดภาพนี้เพื่อเรียกใช้โปรแกรมหลีกเลี่ยงความยุ่งยากในการติดตั้งการพึ่งพาและสภาพแวดล้อมที่หลากหลายทุกครั้งและยังได้รับความโดดเดี่ยวระหว่างแอปพลิเคชัน
2. ตระหนักถึงการเตรียมการ
ก่อนอื่นฉันจะสร้างเว็บแอป Node.js Simple เพื่อสร้างกระจก จากนั้นเรียกใช้คอนเทนเนอร์ตามภาพนี้ สิ่งนี้ช่วยให้การปรับใช้อย่างรวดเร็ว
เนื่องจากเหตุผลของเครือข่ายรูปภาพของฉันจะถูกดาวน์โหลดจากไลบรารีภาพในประเทศไม่ใช่ Docker Hub
ก่อนอื่นให้ดึงภาพ NodeJS จากเว็บไซต์ Mirror ในประเทศ
Docker Pull Hub.c.163.com/nce2/nodejs:0.12.2
หลังจากดาวน์โหลดแล้วให้ตรวจสอบรูปภาพของเราและค้นหาชื่อ เราจะใช้มันในภายหลัง
3. สร้างโปรแกรม node.js
สร้าง package.json และเขียนข้อมูลที่เกี่ยวข้องและการอ้างอิง
vi package.json
{"ชื่อ": "WebTest", "เวอร์ชัน": "1.0.0", "คำอธิบาย": "node.js on Docker", "Author": "lpxxn", "Main": "Server.js", "Scripts": {"Start": "Node Server.js"สร้าง server.js
vi server.js
เขียนเว็บที่ง่ายที่สุดเว็บนี้ขึ้นอยู่กับเฟรมเวิร์กด่วนและส่งคืน Hello Word โปรดทราบว่าเรากำลังฟังพอร์ต 8888
'ใช้อย่างเข้มงวด'; var expression = ต้องการ ('express'); var port = 8888; var app = express (); app.get ('/', ฟังก์ชั่น (req, res) {res.send ('hello world/n');}); app.listen (พอร์ต); console.log ('4. สร้าง Dockerfile
ถัดไปตัวเอกจะใช้เวทีเพื่อสร้างไฟล์ DockerFile ไฟล์นี้เป็นไฟล์ที่จำเป็นสำหรับการสร้างภาพ
vi dockerfile
Docker จะสร้างภาพตามเนื้อหาของ Dockerfile ฉันจะให้รหัสที่สมบูรณ์ก่อนจากนั้นอธิบายทีละบรรทัด
จาก hub.c.163.com/nce2/nodejs:0.12.2# สร้างแอพ DirectoryRun mkdir -p/home/serviceworkdir/home/service# แอพ Bundle Sourcecopy /home/servicerun npm installexpose 8888cmd ["npm", "เริ่ม"]
มาอธิบายประโยคด้วยประโยค
จาก hub.c.163.com/nce2/nodejs:0.12.2
จากคือภาพต้นทางพื้นฐานสำหรับการสร้างภาพ hub.c.163.com/nce2/nodejs:0.12.2 เป็นชื่อของภาพซึ่งเป็นภาพที่เราดึงลงมาจากเซิร์ฟเวอร์ในประเทศที่จุดเริ่มต้น หากไม่มีนักเทียบท่าในพื้นที่มันจะดึงภาพตัวเอง
# สร้างแอพ DirectoryRun Mkdir -p /home /serviceworkdir /home /service
การรันประโยคแรกใช้เพื่อสร้างโฟลเดอร์ในภาพและจะใช้เพื่อบันทึกรหัสของเราในอนาคต
ประโยคที่สอง Workdir คือการใช้โฟลเดอร์ที่เราสร้างขึ้นเป็นไดเรกทอรีการทำงาน
# แอพ Bundle Sourcecopy /home/servicerun npm ติดตั้ง
สำเนาประโยคแรกคือการคัดลอกไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันของเครื่องไปยังโฟลเดอร์ /บ้าน /บริการของรูปภาพ
การเรียกใช้ประโยคที่สองใช้ NPM เพื่อติดตั้งการอ้างอิงทั้งหมดที่จำเป็นสำหรับแอปของเรา
เปิดเผย 8888
เนื่องจากเว็บแอปของเรารับฟังพอร์ต 8888 เราจึงเปิดเผยพอร์ตนี้ไปยังโฮสต์เพื่อให้ฉันสามารถเข้าถึงเว็บจากภายนอก
cmd ["npm", "เริ่ม"]
ฉันเชื่อว่าฉันสามารถบอกได้ว่าเขาทำอะไรโดยไม่ต้องอธิบาย เรียกใช้คำสั่ง npm start คำสั่งนี้จะเรียกใช้ node service.js
เริ่มเว็บแอปของเรา
5. สร้างภาพ
เรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีที่ DockerFile ของคุณตั้งอยู่เพื่อสร้างภาพ
Docker build -t mynodeapp
อย่าลืมจุดสุดท้าย
หลังจากสร้างให้ตรวจสอบภาพของเรา
6. เรียกใช้กระจก
Docker Run -D -P 8888: 8888 AC5
-d บ่งชี้ว่าคอนเทนเนอร์จะทำงานในพื้นหลัง -p หมายถึงการแมปพอร์ตแมปผลิตภัณฑ์ 8888 ของเครื่องท้องถิ่นไปยังพอร์ต 8888 ของคอนเทนเนอร์เพื่อให้เครือข่ายภายนอกสามารถเข้าถึงเว็บของเราผ่านผลิตภัณฑ์ 8888 ของเครื่องท้องถิ่น
AC5 ด้านหลังเป็นรหัสภาพของเรา เนื่องจาก 3 ครั้งแรกสามารถค้นหาภาพนี้ได้ฉันจึงไม่ได้เขียนสิ่งต่อไปนี้
ตรวจสอบ ID ของคอนเทนเนอร์ที่เราเพิ่งวิ่งผ่าน Docker PS
พิมพ์บันทึก 7370 เป็นรหัสคอนเทนเนอร์ของเรา เช่นเดียวกับ Image ID คุณสามารถเขียนได้ทั้งหมด ฉันขี้เกียจและเขียนตัวเลข 4 หลักแรกซึ่งเพียงพอที่จะระบุคอนเทนเนอร์นี้
นักเทียบท่าบันทึก 7350
หากคุณนึกถึงคำสั่งต่อไปนี้ในคอนเทนเนอร์คุณสามารถทำงานบน Linux ทั่วไปหลังจากป้อน หากคุณต้องการออกคุณสามารถดำเนินการคำสั่ง EXIT
7. ทดสอบ
ก่อนอื่นให้ตรวจสอบว่าเราสามารถเข้าถึงเว็บของเราผ่าน Curl ได้หรือไม่
Curl -i Localhost: 8888
คุณสามารถตรวจสอบได้ผ่านเบราว์เซอร์
8. สรุป
โอเคการสอนนี้อยู่ที่นี่ คุณได้เรียนรู้แล้วหรือยัง? หวังว่าบทความนี้จะช่วยให้คุณเริ่มต้นได้ หากคุณมีคำถามหรือคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com