ለጀማሪዎች ዳከር-ዶከር ምንድን ነው እና የዳከር መያዣዎችን እንዴት መፍጠር እንደሚቻል

ባለፉት ጥቂት ዓመታት ውስጥ በፕሮግራም ዓለም ውስጥ ካሉ የቅርብ ጊዜ ክንውኖች ጋር ከተገናኙ በዶከር እና በዶከር ኮንቴይነሮች ዙሪያ ያለውን ከፍተኛ ጩኸት ያስተውሉ ነበር ፡፡ ይህ የዶከር ተወዳጅነት ያለምክንያት አይደለም ፡፡ የዶከር መግቢያ ገንቢዎች ገንቢዎች ወደ ትግበራ ልማት እንዴት እንደሚቀርቡ በጣም ተለውጧል ፡፡

እንዲህ ዓይነቱን አብዮታዊ ቴክኖሎጂ በፕሮግራም ዓለም ላይ ሲመታ ወደ ኋላ መተው የሚፈልግ ማነው? ስለዚህ ፣ ዛሬ ፣ ዶከርን ለትግበራ ልማት እንዴት መጠቀም እንደሚችሉ ለመማር አዲስ የመማሪያ ተከታታይነት ለእርስዎ እንጀምራለን ፡፡ ለዶከር ፍጹም ጀማሪ ከሆኑ ይህ የመማሪያ ተከታታይ ትምህርት እርስዎ ለመጀመር ትክክለኛ ቦታ ነው ፡፡

በተከታታይ ትምህርታችን የመጀመሪያ ጽሑፍ ውስጥ ዶከር በትክክል ምን እንደ ሆነ እና ገንቢዎች ለምን ዶከርን በጣም እንደሚወዱ ለመረዳት እንፈልጋለን ፡፡ እኛ ደግሞ ከዶከር መሰረታዊ ፅንሰ-ሀሳቦች ጋር ለመተዋወቅ ቀላል የ Node.js መተግበሪያን (dockerizing) እናደርጋለን ፡፡


ለምን ከእንግዲህ ይጠብቁ? እንጀምር!



ዶከር ምንድን ነው

ዶከር መተግበሪያዎችን ለመገንባት የሚያገለግል መሣሪያ ነው; መተግበሪያዎችን በመያዣዎች ውስጥ መፍጠር ፣ ማሰማራት እና ማሄድ ነው ፡፡


በኮንቴይነር ፣ ሁሉም ቤተመፃህፍት እና ሌሎች መተግበሪያዎችን ለማካሄድ ከሚያስፈልጉት ጥገኞች ጋር ለመዘርጋት እንደ አንድ ነጠላ ፓኬጅ ተሞልተዋል ፡፡



አንድን መተግበሪያ ኮንቴይነር ማድረግ ዋናው ግብ በተመሳሳይ ሥርዓት ውስጥ ከሚሠሩ ሌሎች መተግበሪያዎች ማግለል ነው ፡፡ ይህ አካሄድ ትግበራዎች እርስ በእርሳቸው ሥራ ውስጥ ጣልቃ እንደማይገቡ ያረጋግጣል እናም የአተገባበር ጥገናን በጣም ቀላል ያደርገዋል ፡፡

ምንም እንኳን በአንድ ስርዓት ውስጥ የሚሰሩ ኮንቴይነሮች በአፈፃፀም ውስጥ ከሌላው ተለይተው ቢኖሩም ፣ ተመሳሳይ የ OS ፍሬን ይጋራሉ ፡፡ ስለሆነም የአተገባበር አፈፃፀም ፣ ምናባዊ ማሽኖችን ለማግለል ከአማራጭ ምርጫ ጋር ሲወዳደሩ መያዣዎች የበለጠ ቀላል ናቸው ፡፡

ምንም እንኳን የአካባቢ ለውጥ ቢኖርም በዊንዶውስ ኦኤስ (OS) ላይ የሚሰራ የኮንቴይነር ትግበራ በሌላ ተጠቃሚ ዊንዶውስ ማሽን ውስጥ ያለምንም ችግር እንዲሰራ የተረጋገጠ ነው ፡፡


ምንም እንኳን መያዣዎች ከዶከር በፊት ለረጅም ጊዜ ጥቅም ላይ የዋሉ ቢሆኑም ፣ የዶከር መግቢያ በገንቢው ማህበረሰብ ውስጥ መያዣዎችን በመጠቀም ታዋቂ ሆኗል ፡፡ ትግበራ ሲደክም የሚያገለግሉ ሁለት አካላት አሉ Dockerfile እና Docker ምስል . ምን እንደሆኑ ለማወቅ እንሞክር ፡፡

Dockerfile

Dockerfile የመረጃ ቋት ምስልን ለመገንባት የሚያስፈልጉ ትዕዛዞችን የያዘ የጽሑፍ ፋይል ነው። Dockerfile ስለ መሰረታዊ ስርዓተ ክወና ፣ ቋንቋ ፣ የፋይል አካባቢ እና ከሌሎች ነገሮች በተጨማሪ ስለ አውታረ መረብ ወደቦች መረጃ ይ containsል።

Docker ምስል

በቦታው ላይ የዶከርን የግንባታ ትዕዛዝ ከዶከር ፋይል ጋር ሲያካሂዱ በዶከር ፋይሉ ላይ በመመስረት የዶከር ምስል ይፈጠራል። የመጨረሻውን የመርከብ መያዣ ለመፍጠር እንደ አብነቶች ይሠራሉ ፡፡ አንዴ ከተፈጠሩ በኋላ የመርከብ ቆጣቢ ምስሎች ቋሚ ናቸው ፡፡ የመትከያ ምስልን በመጠቀም የመርከብ መያዣን ለመፍጠር የዶከርን የሩጫ ትዕዛዝን መጥራት ይችላሉ።



የኖድ.ጄስ መተግበሪያን ዱኪንግ ማድረግ

በዚህ ማጠናከሪያ ትምህርት ውስጥ የ ‹Node.js› መተግበሪያን እንሰርዛለን ፡፡ የዶከር ኮንቴይነር እንዲነሳ እና እንዲሠራ ለማድረግ ደረጃ በደረጃ አካሄድን እንከተላለን ፡፡


1 - የ Node.js ትግበራ ይፍጠሩ 2 - የመረጃ ቋት ፍጠር 3 - የመትከያ ምስልን ይገንቡ 4 - የመተግበሪያውን መያዣ ይፍጠሩ

አፕሊኬሽኖቻችንን ወደ ውስጥ ከመግባትዎ በፊት ዶከር እና Node.js በሲስተምዎ ውስጥ መጫናቸውን ማረጋገጥ አለብዎት

  • በስርዓትዎ ላይ ዶከርን ይጫኑ-በዚህ መማሪያ ውስጥ ዶከርን እንዴት እንደሚጫኑ አልሸፍንም ፣ ግን የዶከር ሰነዶችን መከተል እና ዶከርን በዊንዶውስ ወይም በኡቡንቱ ዴስክቶፕ ላይ መጫን ይችላሉ ፡፡
  • ከኦፊሴላዊው ድር ጣቢያ Node.js ያውርዱ እና ይጫኑ

የ Node.js መተግበሪያን ይፍጠሩ

ከትእዛዝ-መስመር ወደ አዲሱ የፕሮጀክት ማውጫ ይሂዱ እና በመተግበሪያው ጥገኞች ላይ መረጃን የያዘ እና የመጀመሪያ ስክሪፕትን የያዘውን የ package.json ፋይል ለመፍጠር የሚከተለውን ትዕዛዝ ያሂዱ ፡፡

npm init -y


ከዚያ ትዕዛዙን በትእዛዝ መስመሩ ላይ በማሄድ ለትግበራዎ ጥገኛ በመሆን ኤክስፕረስን ይጫኑ እና ያክሉ ፡፡ መተግበሪያውን ለመፍጠር ኤክስፕሬስን እንጠቀማለን ፡፡

npm install express --save

ይህ ፈጣን በእኛ ላይ እንደ ጥገኛ ሆኖ ያክላል package.json ፋይል

አሁን በኤክስፕረስ እገዛ የመስቀለኛ ክፍል መተግበሪያን መፍጠር እንችላለን ፡፡


app.js የሚል ስም ያለው ፋይል ይፍጠሩ በፕሮጀክቱ ማውጫ ውስጥ የሚከተለውን ኮድ ወደ ፋይሉ ያክሉ ፡፡

const express = require('express') const app = express() app.get('/', (req, res) => {
res.send('Hello World!') }) app.listen(3000, () => {
console.log('Node server has started running') })

ከላይ ያለው ኮድ በወደብ 3000 ላይ ገቢ ጥያቄዎችን የሚያዳምጥ የመስቀለኛ ክፍል አገልጋይ ይፈጥራል ፡፡ የመስቀለኛ ክፍል አገልጋዩን ለመጀመር ይህንን ትዕዛዝ በትእዛዝ መስመሩ ላይ ማስኬድ ይችላሉ ፡፡

node app.js

አሁን ወደ አሳሽዎ ይሂዱ እና ዩ.አር.ኤልን ይከተሉ http://localhost:3000 እና ጽሑፉን ያያሉ Hello World! በገጹ ላይ.

ለፕሮጀክታችን ቀለል ያለ የመስቀለኛ መንገድ መተግበሪያ ገንብተናል ፡፡ አሁን የ dockerfile ን ለመፍጠር እንቀጥል ፡፡

Dockerfile ን ይፍጠሩ

በ dockerfile ውስጥ ከዶከር አከባቢ ጋር አብሮ የመስቀለኛ መንገድ መተግበሪያችንን ለመገንባት እና ለማካሄድ የሚያስፈልገውን መረጃ እናቀርባለን።

ይህ ቋንቋውን እና በመተግበሪያው ውስጥ ጥቅም ላይ የዋለውን ስሪቱን መግለፅ ፣ የእኛን የፕሮጄክት ማውጫ እንደ የስራ ማውጫ ማውጣትን ፣ በስራ ማውጫው ውስጥ ያሉትን ሁሉንም ፋይሎች መቅዳት ፣ የአውታረ መረብ ወደብን ማቀናበር እና የትኛው ፋይል ወደ ማመልከቻው የመግቢያ ነጥብ እንደሆነ መግለፅን ያካትታል ፡፡ በጣም ውስብስብ በሆኑ ትግበራዎች ውስጥ የአካባቢ ተለዋዋጮችን እና የውሂብ ጎታ ዩአርኤልን እንዲሁ በዶከር ፋይል ውስጥ ማዘጋጀት ይኖርብዎታል።

FROM node:latest WORKDIR /dockerTutorial COPY . . RUN npm install EXPOSE 3000 ENTRYPOINT ['node', 'app.js']
  • ትግበራችንን ከ ‹ዳከር ሃብ› በተወሰነ ስርዓተ ክወና ለማሄድ የስርዓተ ክወና ምስልን ያወጣል ፡፡ ዶከር ሃብ ወደ አከባቢው አከባቢ ልንጎትታቸው የምንችላቸው የዶከር ምስሎች ማከማቻ ነው ፡፡ Node.js. ን የጫኑ በኡቡንቱ ላይ የተመሠረተ ምስል እያገኘን ነው ፡፡ የመስቀለኛ ሥሪት ስሪት “የቅርብ ጊዜውን” በመጠቀም የቅርቡ የመስቀለኛ ስሪት ስሪት የተጫነ ምስል ይጎትታል።
  • ወርክራይር ትዕዛዝ የመተግበሪያውን የሥራ ማውጫ ያዘጋጃል።
  • ኮፒ የትእዛዝ ፋይሎችን ከአሁኑ ማውጫ (በትእዛዙ-መስመር ላይ) እና በቀደመው እርምጃ ወደ ተዘጋጀው የሥራ ማውጫ ይቅዳል። ለመቅዳት የፋይል ስም መለየት ወይም አሁን ባለው ማውጫ ውስጥ ያሉትን ሁሉንም ፋይሎች ወደ ሥራ ማውጫ ለመገልበጥ ሁለት ሙሉ ማቆሚያዎችን መጠቀም ይችላሉ ፡፡
  • አሂድ ትግበራ ትግበራውን ለመገንባት የሚያስፈልጉትን ሁሉንም ጥገኛዎች ይጭናል ፡፡ ይህ በ package.json ውስጥ የተገለጹትን ሁሉንም ጥገኛዎች ያጠቃልላል ፋይል
  • አሳይ ትእዛዝ ከዶከር ኮንቴነር ወደ ውጭው ዓለም ወደብ ይከፍታል ፡፡ ይህ ወደብ ወደ ዳከር ኮንቴነር የምንልክላቸውን ጥያቄዎች በሙሉ ይቀበላል ፡፡ ፖርት ጥያቄዎችን ለማዳመጥ በዶከር ኮንቴይነር ውስጥ የእኛ መስቀለኛ መንገድ መተግበሪያችን ወደብ ስለሆነ ወደ 3000 ተቀናብሯል ፡፡
  • መግቢያ ማመልከቻውን እንዴት እንደሚጀመር ይገልጻል ፡፡ ትግበራውን ለመጀመር ዶከር ወደ አንድ ትዕዛዝ የምንሰጠውን ድርድር ይቀላቀላል ፡፡ በዚህ ሁኔታ | node app.js.

የዶከር ምስል መገንባት

ከ Dockerfile ውስጥ የዶከር ምስልን ለመፍጠር የሚከተለውን ትዕዛዝ ይጠቀሙ።

docker build -t docker-tutorial .

Docker-tutorial የዶከር ምስል ስም ነው። ነጥቡ የፋይል ዱካውን ወደ የፕሮጀክቱ ማውጫ የሚያመለክት ሲሆን አሁን በትእዛዝ-መስመር ውስጥ ያለንበት ቦታ ነው ፡፡

ከ ጋር የተገለጸው የስርዓተ ክወና ምስል ትእዛዝ ፣ መስቀለኛ መንገድ: የቅርብ ጊዜ ፣ በአሁኑ ጊዜ በመሳሪያዎ ውስጥ የለም ፣ ከላይ የተጠቀሰውን ትዕዛዝ ሲያካሂዱ ከዶከር ሃብ ይጎትታል።

ምስሉን ከሳቡ በኋላ በ dockerfile ውስጥ ያለው እያንዳንዱ ትዕዛዝ አንድ በአንድ ይገደላል።

በአፈፃፀሙ መጨረሻ ላይ መልዕክቱን ካዩ በተሳካ ሁኔታ የተገነባ , የመተግበሪያው የመርከብ ምስል በተሳካ ሁኔታ ተገንብቷል። በአከባቢው የምስል ማከማቻ ውስጥ የተገነባውን የመርከብ ምስል ለማየት ይህንን ትዕዛዝ ያሂዱ።

docker images

ውጤቱ ይህን ይመስላል

መያዣውን መፍጠር

አሁን የእኛን የዶከር ኮንቴይነር ለመፍጠር የተሰራውን ምስል መጠቀም እንችላለን ፡፡ መያዣውን ለመፍጠር የመርከብ አሂድ ትዕዛዙን ይጠቀሙ።

docker run -p 8080:3000 docker-tutorial

እዚህ ቁጥር 8080 እና 3000 ቁጥሮች የእቃውን ውጫዊ እና ውስጣዊ ያመለክታሉ ፡፡ ውጫዊ ወደብ 8080 በአሳሳችን በኩል ከማመልከቻው ጋር ለማገናኘት የምንጠቀምበት ወደብ ነው ፡፡ የውስጥ ወደብ ፣ 3000 ፣ ማመልከቻችን ለገቢ ጥያቄዎች የሚያዳምጠው ወደብ ነው ፡፡ የዶከር ኮንቴይነር የተሰጠውን የውጭ ወደብ ወደ ውስጠኛው ወደብ ያሳያል ፡፡

ዩአርኤሉን ጎብኝ http://localhost:8080 በአሳሹ ላይ ገጹን ከ Hello World! ጋር ማግኘትዎን ያረጋግጡ http://localhost:3000 ሲጎበኙ ያገኙት መልእክት ከዚህ በፊት. አዎ ከሆነ ያ Docker መያዣዎ እየሰራ ነው።

በመሳሪያዎ ላይ ሁሉንም እየሰሩ ያሉትን የዶከር ኮንቴይነሮችን ለመመልከት ይህንን ትዕዛዝ መጠቀም ይችላሉ።

docker ps

ትዕዛዙ እንደዚህ አይነት ውጤት ይሰጥዎታል። የሩጫውን ኮንቴይነር CONTAINER_ID እና NAME እዚህ ማግኘት እንችላለን ፡፡

በመተግበሪያዎ ላይ የአካባቢ ተለዋዋጭዎችን መጨመር

ትግበራ ከአከባቢ ተለዋዋጭዎች ጋር እንዴት እንደጠቀስኩ በ dockerfile ውስጥ ተጨማሪ መመሪያዎችን ይፈልጋል? የአካባቢያዊ ተለዋዋጭ ዋጋ ከሚሠሩበት አካባቢ ጋር ይለወጣል ፡፡

የእኛ መስቀለኛ መንገድ መተግበሪያችን አገልጋዩ በሚሠራበት ጊዜ የሚያዳምጠውን ወደብ እንዴት በግልፅ እንደጠቀስን ልብ ይበሉ ፡፡ ይህ አካሄድ የማይለዋወጥ እና ለስህተት የተጋለጠ ነው ፡፡ አፕሊኬሽኖቻችንን ወደ መስቀለኛ መንገድ አገልጋይ ወደብ 3000 በማይከፍተው አከባቢ ውስጥ የምናከናውን ከሆነ መተግበሪያችን መስራቱን ያቆማል ፡፡

በጣም ትክክለኛው አተገባበር የወደብ ቁጥሩን ከማመልከቻው እያወጣ ነው። በምትኩ ፣ በወደብ ቁጥር ምትክ ተለዋዋጭ ስም እንጠቀማለን እና በሚሮጠው አከባቢ ውስጥ ለዚያ ተለዋዋጭ እሴት እናዘጋጃለን ፡፡ በእኛ ሁኔታ የሩጫ አከባቢው የዶከር መያዣ ነው ፡፡ ስለዚህ የወደብ ቁጥሩን እንደ አከባቢ ተለዋዋጭ ወደ dockerfile ማከል አለብን።

እንዴት እንደዚያ ማድረግ እንደምንችል እስቲ እንመልከት ፡፡

በመጀመሪያ ፣ የአካባቢውን ተለዋዋጭ ከእኛ እሴት ጋር ወደ ዶክፋፋፋፋችን ላይ ይጨምሩ። ይህንን ለማሳካት ወደ dockerfile አዲስ ትዕዛዝ ማከል አለብን።

FROM node:latest WORKDIR /dockerTutorial COPY . . ENV PORT=3000 RUN npm install EXPOSE $PORT ENTRYPOINT ['node', 'app.js']

በተለዋጭ ስም እና እሴት ምደባ የተከተለውን የ ENV ትዕዛዝ በመጠቀም አዲስ የከባቢያዊ ተለዋዋጭ በእኛ የ dockerfile ላይ ማከል እንችላለን። የወደብ ቁጥሩን በግልፅ ላለመናገር የ EXPOSE 3000 ትዕዛዝ እንዴት እንደተቀየረ አስተውለሃል? ይልቁንም ትክክለኛውን የወደብ ቁጥር ለማግኘት የተፈጠረውን PORT ተለዋዋጭ ያመለክታል ፡፡ በዚህ አካሄድ ፣ የወደብ ቁጥሩን መለወጥ ካለብን ፣ በእኛ ኮድ ውስጥ አንድ ቦታ ብቻ መለወጥ አለብን ፣ ይህም መተግበሪያችንን ለማቆየት ቀላል ያደርገዋል ፡፡

አሁን የ dockerfile ን ቀይረናል ፣ ቀጣዩ ደረጃ የተፈጠረውን የአካባቢ ተለዋዋጭ ለመጥቀስ የ app.js ን እየቀየረው ነው። ለዚህም በአድማጩ ዘዴ ውስጥ ጥቅም ላይ የዋለውን የወደብ ቁጥር 3000 በ process.env.PORT እንተካለን ፡፡

const express = require('express') const app = express() app.get('/', (req, res) => {
res.send('Hello World!') }) app.listen(process.env.PORT, () => {
console.log('Node server has started running') })

በመተግበሪያ ፋይሎቻችን እና በ dockerfile ላይ ለውጦችን ስላደረግን ለአዲስ ኮንቴይነር አዲስ ምስል መገንባት አለብን ፡፡ በመጀመሪያ ግን ይህንን ለማሳካት አሁን የሚሰራውን የዶከር ኮንቴይነር ማቆም አለብን ፡፡

መያዣውን ለማቆም የመርከብ ማቆሚያውን ትዕዛዝ መጠቀም እንችላለን ፡፡

docker stop f10

በዚህ ትዕዛዝ ውስጥ ጥቅም ላይ የዋለው እሴቱ f10 የመጀመሪያዎቹ ሦስት ቁጥሮች የመያዣው መታወቂያ ነው።

የሩጫውን መያዣ ለማስቆም ትዕዛዙን ፣ ዳከር መግደልን መጠቀም እንችላለን ፡፡

docker kill f10

በዶከር ግድያ እና በዶከር ማቆሚያ መካከል ያለው ልዩነት የመርከብ ማቆሚያ ሀብቶችን በመጠቀም በመለቀቁ እና ግዛቱን በማዳን መያዣውን በተሻለ ሁኔታ ያቆማል ፡፡ ዳከር መግደል ግን ሀብቶችን በአግባቡ ሳይለቁ ወይም ግዛቱን ሳያድኑ በድንገት መያዣውን ያቆማል ፡፡ በማምረቻ አከባቢ ውስጥ ለሚሠራው ኮንቴይነር መያዣውን ለማስቆም የመርከብ ማቆሚያ መጠቀም የተሻለ ምርጫ ነው ፡፡

አንድ የሩጫ መያዣን ካቆሙ በኋላ በእቃ መያዢያው የተረፈውን ቀሪውን ከአስተናጋጁ አከባቢ ውስጥ ለማፅዳት ያረጋግጡ ፡፡

መያዣውን በዴሞን ሞድ ውስጥ ማሄድ

ኮንቴይነሩን ለማስቆም ከላይ የተጠቀሱትን ትዕዛዞች ለማስኬድ ሲሞክሩ ፣ ኮንቴይነሩን ለመፍጠር የተጠቀምንበት የተርሚናል ትር እኛ ኮንቴይነር እስካልገደልን ድረስ ምንም ተጨማሪ ትዕዛዞችን ለማሄድ ሊያገለግል እንደማይችል ያስተውላሉ ፡፡ አዳዲስ ትዕዛዞችን ለማስኬድ የተለየ ትርን በመጠቀም ለዚህ መፍትሔ ማግኘት እንችላለን ፡፡

ግን የተሻለ አካሄድ አለ ፡፡ መያዣውን በዴሞን ሞድ ውስጥ ማስኬድ እንችላለን ፡፡ በዲያሞን ሞድ አማካኝነት የውጤት ውጤቶችን ለማሳየት የአሁኑን ትር ሳይጠቀም መያዣው ከበስተጀርባ ይሠራል ፡፡

በዲያሞን ሞድ ውስጥ መያዣን ለመጀመር በቀላሉ በመረጃ ቋት አሂድ ትዕዛዝ ላይ ተጨማሪ -d ባንዲራ ማከል አለብዎት።

docker run -d -p 8080:3000 docker-tutorial

መያዣውን በይነተገናኝ ሁናቴ ማሄድ

በይነተገናኝ ሁናቴ ውስጥ አንድን ዕቃ ለማስኬድ መያዣው ቀድሞውኑ መሮጥ አለበት ፡፡ አንዴ በይነተገናኝ ሁኔታ ውስጥ ፋይሎችን በመያዣው ላይ ለመጨመር ወይም ለማስወገድ ትዕዛዞችን ማስኬድ ፣ ፋይሎችን መዘርዘር ወይም አብዛኛውን ጊዜ የምንጠቀምባቸውን ሌሎች መሠረታዊ ትእዛዞችን ማስኬድ ይችላሉ ፡፡

በመስተጋብራዊ ሁኔታ ውስጥ መያዣውን ለማስኬድ የሚከተለውን ትዕዛዝ ይጠቀሙ።

docker exec -it e37 bash

እዚህ e37 የእቃ መያዢያ መታወቂያ ነው ፡፡ የበሽ ትዕዛዞችን በመጠቀም በይነተገናኝ ሁነታን ይጫወቱ ፡፡



ማጠቃለያ

በእኛ የዶከር መማሪያ ተከታታይ ትምህርት የመጀመሪያ ትምህርት ውስጥ ለቀላል የ Node.js ትግበራ የ ‹ዳከር› መያዣ እንዴት እንደሚፈጠሩ ተምረዋል ፡፡ ግን በዶከር እና በኮንቴይነሮች ማድረግ የሚችሉት ብዙ ነገር አለ ፡፡ በሚቀጥሉት መማሪያዎቻችን ውስጥ ከመረጃ ቋቶች ፣ ጥራዞች ጋር እንዴት መሥራት እና ከማይክሮሶፍትዌር ጋር በተሠራ መተግበሪያ ከሚጠቀሙባቸው በርካታ ኮንቴይነሮች ጋር መሥራት እንደሚቻል እንመለከታለን ፡፡