Docker Private Registries Sinhala | Local Image Management | Docker Hub Alternative

Docker Private Registries Sinhala | Local Image Management | Docker Hub Alternative

කොහොමද යාලුවනේ! අද අපි කතා කරන්න යන්නේ Docker ගැන. Docker කියන්නේ මේ දවස්වල software development වලදී අත්‍යවශ්‍යම tool එකක් කියලා ඔයාලා දන්නවා ඇති. Containers හරහා අපේ applications පහසුවෙන් build කරන්න, ship කරන්න, run කරන්න Docker උදව් වෙනවා.

Docker භාවිතා කරනකොට අපිට Docker images ගබඩා කරලා තියාගන්න තැනක් ඕනේ වෙනවා. මේ සඳහා බහුලවම භාවිතා වෙන්නේ Docker Hub. හැබැයි, හැමෝටම Docker Hub කියන්නේ හොඳම විසඳුම නෙවෙයි. විශේෂයෙන්ම enterprise-level projects වලට, හෝ private project වලදී අපිට තව දුරටත් control එකක්, වැඩි ආරක්ෂාවක්, සහ customization options ඕන වෙනවා.

අන්න ඒ වෙලාවට තමයි Docker Private Registries කියන සංකල්පය ගොඩක් වැදගත් වෙන්නේ. අද මේ article එකෙන් අපි කතා කරමු:

  • Docker Hub vs. Private Registries: ඇයි අපිට Private Registry එකක් ඕන වෙන්නේ?
  • Setting up Your Own Docker Registry: Registry එකක් අපේම server එකක install කරගන්නේ කොහොමද?
  • Securing Your Registry: Authentication සහ TLS හරහා Registry එක ආරක්ෂා කරගන්නේ කොහොමද?
  • Image Signing (Notary): අපේ Docker images වල විශ්වාසනීයත්වය සහ අඛණ්ඩතාවය තහවුරු කරගන්නේ කොහොමද?
  • Registry Mirroring: වේගය සහ කාර්යක්ෂමතාවය වැඩි කරගන්නේ කොහොමද?

මේ හැම දෙයක්ම ගොඩක් සරලව, practical examples එක්ක Sinhala වලින් ඉගෙන ගමු. එහෙනම්, අපි පටන් ගමු!

Docker Hub vs. Private Registries - ඇයි අපිට Private Registry එකක් ඕන වෙන්නේ?

මුලින්ම බලමු Docker Hub කියන්නේ මොකක්ද සහ ඒකේ තියෙන වාසි අවාසි මොනවද කියලා, ඊටපස්සේ Private Registries වල වාසි පැහැදිලි කරගමු.

Docker Hub

Docker Hub කියන්නේ Docker images ගබඩා කරලා තියන්න පුළුවන් cloud-based repository service එකක්. මේක Docker විසින්ම provide කරනවා. ගොඩක් developers ලා මේක free tier එක යටතේ භාවිතා කරනවා. public images ගොඩක් මේකේ තියෙනවා.

වාසි:

  • පහසුව: Setup කරන්න දෙයක් නැහැ. Docker install කරාට පස්සේ කෙලින්ම use කරන්න පුළුවන්.
  • ලබා ගත හැකි වීම: ලෝකේ ඕනෑම තැනක ඉඳන් images වලට access කරන්න පුළුවන්.
  • විශාල image ප්‍රමාණයක්: Official images, community-contributed images විශාල ප්‍රමාණයක් තියෙනවා.

අවාසි:

  • Public Access: Free tier එක යටතේ private repositories ගණන සීමිතයි. Public repositories වල images ඕනෑම කෙනෙකුට pull කරන්න පුළුවන් (ඒක සමහර වෙලාවට අපිට ඕන වෙන්නෙ නැති දෙයක්).
  • Rate Limits: Authenticated නැති user කෙනෙකුට පැයකට pull කරන්න පුළුවන් images ගණන සීමිතයි. Free authenticated users ලටත් සීමා තියෙනවා.
  • Security & Compliance: සමහර companies වලට තමන්ගේ sensitive images cloud එකේ තියන්න බැහැ. ඒ වගේම industries specific compliance regulations වලට මේක හරස් වෙන්න පුළුවන්.
  • Data Locality & Bandwidth: අපේ infrastructure එක cloud එකෙන් ඈත නම් image pull කරන එකට වැඩි කාලයක් සහ bandwidth එකක් යනවා.

Docker Private Registries

Private Registry එකක් කියන්නේ ඔයාගේම infrastructure එකක් ඇතුළේ හෝ ඔයාට control කරන්න පුළුවන් cloud environment එකක host කරන Docker image repository එකක්. මේකෙන් ඔයාට images වල සම්පූර්ණ control එක ලැබෙනවා.

වාසි:

  • සම්පූර්ණ පාලනය (Full Control): ඔයාට Registry එක host කරන server එක, network access, security settings, සහ user authentication methods සම්පූර්ණයෙන්ම control කරන්න පුළුවන්.
  • ආරක්ෂාව (Security): Internal network එකක් ඇතුළේ Registry එක host කරන නිසා sensitive images අන්තර්ජාලයට නිරාවරණය වීම වළක්වා ගන්න පුළුවන්. TLS/SSL සහ authentication වලින් තවදුරටත් ආරක්ෂාව වැඩි කරන්න පුළුවන්.
  • Compliance: Industry regulations වලට අනුව images ගබඩා කරන්න සහ ඒවාට access control කරන්න පුළුවන්.
  • වේගය (Speed): Registry එක ඔයාගේ infrastructure එකට ළඟින්ම තියෙන නිසා image pull සහ push operations වල වේගය වැඩියි. Bandwidth usage අඩුයි.
  • Customization: ඔයාට ඕන විදිහට storage backend එක (local filesystem, S3, Azure Blob storage වගේ) customize කරන්න පුළුවන්.

ඉතින්, ඔයාට තියෙන්නේ private applications නම්, සංවේදී දත්ත අඩංගු images නම්, නැත්නම් security සහ compliance regulations වලට යටත් වෙනවා නම්, Private Registry එකක් භාවිතා කරන එක තමයි හොඳම විසඳුම. Docker Hub වගේම Azure Container Registry (ACR), Amazon Elastic Container Registry (ECR), Google Container Registry (GCR) වගේ services මේ Private Registry concept එකට හොඳ උදාහරණ.

Setting up Your Own Docker Registry - අපිම Registry එකක් හදමු!

Docker Registry එකක් set up කරන එක හිතන තරම් අමාරු දෙයක් නෙවෙයි. Docker විසින්ම registry කියන official image එක provide කරනවා. මේක භාවිතා කරලා අපිට ගොඩක් පහසුවෙන් Registry එකක් run කරන්න පුළුවන්.

මුලින්ම, ඔයාට Docker install කරපු server එකක් හෝ local machine එකක් අවශ්‍යයි. අපි Registry එක run කරන්නේ Docker container එකක් විදිහට.

පියවර 1: Registry container එක Run කිරීම

ගොඩක්ම සරලව Registry එකක් run කරන්න පුළුවන් පහත command එකෙන්:

docker run -d -p 5000:5000 --restart=always --name registry registry:2
  • -d: Container එක background එකේ run කරන්න (detached mode).
  • -p 5000:5000: Local machine එකේ port 5000 එක container එකේ port 5000 එකට map කරනවා. Registry එක default run වෙන්නේ port 5000 එකේ.
  • --restart=always: Docker daemon එක restart උනොත් container එකත් auto restart වෙන්න සලස්වනවා.
  • --name registry: Container එකට registry කියලා නමක් දෙනවා.
  • registry:2: Docker Registry image එකේ version 2 භාවිතා කරනවා.

දැන් ඔයාගේ Registry එක localhost:5000 එකේ run වෙනවා.

පියවර 2: Registry එකට Image එකක් Push කිරීම

Registry එකට image එකක් push කරන්න කලින්, අපි අපේ image එකට Registry URL එක එක්ක tag එකක් දාන්න ඕනේ. උදාහරණයක් විදිහට, ඔයාට my-local-app:1.0 කියලා image එකක් තියෙනවා නම්:

docker tag my-local-app:1.0 localhost:5000/my-local-app:1.0

දැන් මේ tag කරපු image එක Registry එකට push කරමු:

docker push localhost:5000/my-local-app:1.0

ඔයාට මෙහෙම error එකක් එන්න පුළුවන්:

The push refers to repository [localhost:5000/my-local-app]
An image doesn't have a "latest" tag.

The push refers to repository [localhost:5000/my-local-app]
Get "http://localhost:5000/v2/": http: server gave HTTP response to HTTPS client

මේක වෙන්නේ අපේ Registry එක insecure (HTTP) එකක් නිසා, හැබැයි Docker client එක default HTTPS Registry එකක් බලාපොරොත්තු වෙනවා. මේක fix කරන්න නම් අපි Docker daemon එකට කියන්න ඕනේ මේ Registry එක insecure කියලා.

පියවර 3: Insecure Registry එකක් configure කිරීම

daemon.json file එක edit කරන්න ඕනේ. මේ file එක Linux වල /etc/docker/daemon.json වලත්, Windows/macOS වල Docker Desktop settings වලත් හොයාගන්න පුreක. (Windows/macOS වල Docker Desktop icon එක right-click කරලා Settings > Docker Engine යටතේ edit කරන්න පුළුවන්).

{
  "insecure-registries": ["localhost:5000"]
}

මේක save කරලා Docker daemon එක restart කරන්න ඕනේ. Linux වල නම් sudo systemctl restart docker වගේ command එකකින් restart කරන්න පුළුවන්. Docker Desktop වල නම් settings save කරනකොටම restart වෙනවා.

දැන් ආපහු image එක push කරන්න උත්සාහ කරන්න:

docker push localhost:5000/my-local-app:1.0

Successful push message එකක් එයි. දැන් ඔයාගේ image එක ඔයාගේ private Registry එකේ තියෙනවා.

පියවර 4: Registry එකෙන් Image එකක් Pull කිරීම

Push කරපු image එක pull කරන්නත් පුළුවන්. මුලින්ම local machine එකේ තියෙන image එක delete කරලා pull කරලා බලමු.

docker rmi localhost:5000/my-local-app:1.0
docker pull localhost:5000/my-local-app:1.0

ඒකත් සාර්ථකව pull වෙන්න ඕනේ. මේ විදිහට තමයි බොහොම සරලව insecure Docker Registry එකක් set up කරලා images push/pull කරන්නේ. හැබැයි, production use එකකට නම් මේක මදි. අපිට තව දුරටත් Registry එක secure කරන්න ඕනේ.

Securing Your Registry - ආරක්ෂාව තමයි වැදගත්ම දේ! (Authentication & TLS)

Registry එක public internet එකට නිරාවරණය කරනවා නම් (නැත්නම් internal network එකක වුණත්) authentication සහ encryption (TLS/HTTPS) කියන්නේ අත්‍යවශ්‍යම දේවල් දෙකක්. මේ දෙක නැතුව Registry එකක් use කරනවා කියන්නේ ඔයාගේ images ඕනෑම කෙනෙකුට access කරන්න පුළුවන් විදිහට තියෙනවා වගේ දෙයක්.

1. TLS/HTTPS Enable කිරීම

TLS (Transport Layer Security) කියන්නේ client සහ Registry අතර data encryption කරන mechanism එක. මේක හරහා data interception වලින් ආරක්ෂා වෙනවා. මේ සඳහා අපිට SSL certificate එකක් අවශ්‍යයි.

SSL Certificate එකක් සකස් කරගැනීම:

Production environment එකකට නම් Let's Encrypt වගේ public CA (Certificate Authority) එකකින් certificate එකක් ගන්න එක තමයි හොඳම දේ. හැබැයි development/testing සඳහා අපිට self-signed certificate එකක් හදාගන්න පුළුවන්.

අපි OpenSSL භාවිතා කරලා self-signed certificate එකක් හදාගමු. Registry container එක run කරන machine එකේ මේ commands run කරන්න:

mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt

මේ command එක run කරනකොට ඔයාගෙන් සමහර details අහයි (Country Name, State, Organization Name වගේ). Common Name එකට ඔයාගේ Registry එක host කරන server එකේ IP address එක හෝ Domain Name එක දෙන්න (උදා: localhost, 192.168.1.10, හෝ myregistry.example.com).

මේකෙන් domain.key (private key) සහ domain.crt (certificate) කියන files දෙක certs folder එක ඇතුළේ හැදෙනවා.

Registry එක TLS එක්ක Run කිරීම:

දැන් මේ certificates භාවිතා කරලා Registry container එක restart කරමු:

docker stop registry
docker rm registry

docker run -d \
  --restart=always \
  --name registry \
  -p 5000:5000 \
  -v "$(pwd)"/certs:/certs \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
  registry:2
  • -v "$(pwd)"/certs:/certs: Local certs folder එක container එකේ /certs folder එකට mount කරනවා.
  • -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt": Certificate file එකේ path එක define කරනවා.
  • -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key": Private key file එකේ path එක define කරනවා.

දැන් ඔයාගේ Registry එක HTTPS (port 5000) එකෙන් run වෙනවා. හැබැයි, self-signed certificate එකක් නිසා, Docker client එකට මේක trust කරන්න බැහැ. Docker client එකට මේ certificate එක trust කරන්න කියලා කියන්න ඕනේ.

Docker Client එකට Certificate එක Trust කරන්න සැලැස්වීම:

ඔයාගේ Docker client machine එකේ (Registry එකට push/pull කරන machine) /etc/docker/certs.d/localhost:5000/ (Linux) හෝ Docker Desktop settings (Windows/macOS) යටතේ certificate file එක copy කරන්න ඕනේ.

Linux වල නම්:

mkdir -p /etc/docker/certs.d/localhost:5000
sudo cp certs/domain.crt /etc/docker/certs.d/localhost:5000/ca.crt

මේක කරලා Docker daemon එක restart කරන්න.

දැන් ඔයාට image එකක් push/pull කරන්න පුළුවන් වෙන්න ඕනේ, Secure Registry එකත් එක්ක.

2. Basic Authentication Enable කිරීම

Registry එකට access කරන්න username/password protection එකක් දාමු. අපි htpasswd භාවිතා කරලා user credentials store කරමු.

htpasswd file එකක් හැදීම:

mkdir -p auth
docker run --entrypoint htpasswd registry:2 -Bbn user password > auth/htpasswd
  • auth folder එක හැදුවා.
  • htpasswd utility එක registry:2 image එක ඇතුලෙන් run කරලා user කියන username එකට password කියන password එක encrypted format එකෙන් auth/htpasswd file එකට ලිව්වා. ඔයාට කැමති username/password දෙන්න පුළුවන්.

Registry එක Authentication එක්ක Run කිරීම:

දැන් මේ htpasswd file එක භාවිතා කරලා Registry container එක restart කරමු:

docker stop registry
docker rm registry

docker run -d \
  --restart=always \
  --name registry \
  -p 5000:5000 \
  -v "$(pwd)"/certs:/certs \
  -v "$(pwd)"/auth:/auth \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  registry:2

මෙහිදී, auth folder එකත් container එකේ /auth එකට mount කළා. REGISTRY_AUTH environment variables මගින් authentication enable කළා.

Registry එකට Login වීම:

දැන් image එකක් push/pull කරන්න කලින් Registry එකට login වෙන්න ඕනේ:

docker login localhost:5000

ඔයාගෙන් username (user) සහ password (password) අහයි. සාර්ථකව login උනාට පස්සේ ඔයාට images push/pull කරන්න පුළුවන්. මේ විදිහට Registry එක ආරක්ෂිතව භාවිතා කරන්න පුළුවන්.

Image Signing (Notary) - ඔබේ Images විශ්වාසදායකද?

අපි Registry එකක් ආරක්ෂා කළත්, අපේ images වල විශ්වාසනීයත්වය සහ අඛණ්ඩතාවය (integrity) ගැන තවදුරටත් සැලකිලිමත් වෙන්න ඕනේ. ඒ කියන්නේ, අපි push කරපු image එකමද pull වෙන්නේ? කවුරුහරි අතරමගදී image එක වෙනස් කරලා නැද්ද? නැත්නම් අපි විශ්වාස කරන කෙනෙක් විසින්මද මේ image එක build කරලා push කරලා තියෙන්නේ?

මේ ප්‍රශ්න වලට උත්තර දෙන්න Docker Content Trust සහ Notary භාවිතා කරන්න පුළුවන්.

Docker Content Trust කියන්නේ මොකක්ද?

Docker Content Trust කියන්නේ Docker Engine එකට build කරලා තියෙන feature එකක්. මේකෙන් පුළුවන් image එකක source එක verify කරන්න සහ image එක push කරපු වෙලාවේ ඉඳන් pull කරනකන් කිසිම වෙනසක් වෙලා නැහැ කියලා සහතික කරන්න (integrity). මේක implement කරන්න Notary කියන tool එක භාවිතා කරනවා.

Notary කියන්නේ මොකක්ද?

Notary කියන්නේ content trust enable කරන්න භාවිතා කරන open-source project එකක්. මේක client-side digital signatures භාවිතා කරනවා. Images push කරනකොට private keys වලින් sign කරනවා, pull කරනකොට public keys වලින් verify කරනවා.

Image Signing වල වාසි:

  • අඛණ්ඩතාවය (Integrity): Image එක pull කරනකොට ඒක original image එකමද කියලා check කරන්න පුළුවන්.
  • සත්‍යතාවය (Authenticity): Image එක publish කරපු කෙනාමද push කරේ කියලා සහතික කරන්න පුළුවන්.
  • ආරක්ෂාව (Security): Malicious images හෝ tampered images run කරන එක වළක්වනවා.

Docker Content Trust Enable කිරීම:

Docker Content Trust enable කරන්න ගොඩක්ම සරලයි. ඔයාගේ terminal එකේ environment variable එකක් set කරන්න:

export DOCKER_CONTENT_TRUST=1

මේක enable කරාට පස්සේ ඔයාට signed images පමණක් pull කරන්න පුළුවන් වෙනවා. ඒ වගේම image එකක් push කරනකොට signing key එකක් provide කරන්න කියලා ඉල්ලයි.

Signed Image එකක් Push කිරීම:

DOCKER_CONTENT_TRUST environment variable එක enable කරලා තියෙන වෙලාවේ image එකක් push කරන්න උත්සාහ කරන්න:

docker push localhost:5000/my-local-app:1.0

මේකෙන් ඔයාට signing key එකක් generate කරන්නද නැත්නම් තියෙන key එකක් භාවිතා කරන්නද කියලා අහයි. අලුත් key එකක් generate කරනවා නම් passphrase එකක් දෙන්න කියලා අහයි. මේ passphrase එක අනිවාර්යයෙන් මතක තියාගන්න. මේකෙන් තමයි ඔයාගේ signing keys ආරක්ෂා වෙන්නේ. මේ keys ~/.docker/trust/ folder එකේ save වෙනවා.

Successfully push කරාට පස්සේ, ඔයාගේ image එක Registry එකේ signed image එකක් විදිහට තියෙනවා.

Signed Image එකක් Pull කිරීම:

Signed images pull කරන්නත් DOCKER_CONTENT_TRUST=1 enable කරලා තියෙන්න ඕනේ. එහෙම නැතුව unsigned image එකක් pull කරන්න බැහැ. මේක security policy එකක් විදිහට use කරන්න පුළුවන්.

docker pull localhost:5000/my-local-app:1.0

Signed images pull කරනකොට Docker Engine එක automatically image එකේ signature එක verify කරනවා. Signature එක match නොවුණොත් හෝ image එක tamper කරලා තිබ්බොත් pull එක fail වෙනවා.

මේ Docker Content Trust feature එක enterprise environments වලදී ඉතාම වැදගත්. මොකද, මේකෙන් අපේ supply chain security එක ශක්තිමත් වෙනවා.

Registry Mirroring - වේගය සහ කාර්යක්ෂමතාවය!

Registry Mirroring කියන්නේ Docker images pull කරන වේගය වැඩි කරන්න සහ bandwidth එක ඉතුරු කරන්න භාවිතා කරන තවත් වැදගත් සංකල්පයක්. විශේෂයෙන්ම ඔයාගේ organization එකේ ගොඩක් developers ලා හෝ servers එකම images set එකක් නිතරම pull කරනවා නම්, Registry Mirroring කියන්නේ ගොඩක්ම ප්‍රයෝජනවත් විසඳුමක්.

Registry Mirroring කියන්නේ මොකක්ද?

Registry Mirroring කියන්නේ remote Registry එකක (උදා: Docker Hub) තියෙන images වල copy එකක් ඔයාගේ local network එක ඇතුළේ තියාගන්න එක. Docker client එකක් image එකක් pull කරනකොට, මුලින්ම බලන්නේ local mirror එකේ ඒ image එක තියෙනවද කියලා. තියෙනවා නම්, local mirror එකෙන් pull කරනවා. නැතිනම් විතරයි remote Registry එකට ගිහින් pull කරන්නේ. මේකෙන් image caching mechanism එකක් වගේ ක්‍රියාත්මක වෙනවා.

Registry Mirroring වල වාසි:

  • වේගවත් Image Pulls: Images local network එක ඇතුළේ තියෙන නිසා pull කරන වේගය ඉතා ඉහළයි.
  • Bandwidth Savings: සෑම client එකක්ම remote Registry එකෙන් images pull කරන්නේ නැති නිසා external bandwidth usage එක අඩු වෙනවා.
  • විශ්වසනීයත්වය (Reliability): Remote Registry එකට මොකක් හරි ප්‍රශ්නයක් ආවොත් (අවශ්‍යතාවයක් වගේ) local mirror එකෙන් images ලබාගන්න පුළුවන්.
  • Rate Limit Avoidance: Docker Hub වගේ public registries වල rate limits මඟහරවා ගන්න උදව් වෙනවා.

Registry Mirror එකක් Setup කරන්නේ කොහොමද?

Registry Mirror එකක් setup කරන්න Registry container එකක් run කරනවා වගේමයි, හැබැයි configuration එකේ පොඩි වෙනසක් තියෙනවා.

අපිට Docker Registry එකක් mirror එකක් විදිහට run කරන්න පුළුවන්. මේකෙන් remote Registry එකක (උදා: Docker Hub) images cache කරනවා.

Registry container එක Mirror Mode එකේ Run කිරීම:

docker run -d \
  --restart=always \
  --name registry-mirror \
  -p 5001:5000 \
  -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
  registry:2
  • -p 5001:5000: මේක mirror එකක් නිසා අපි වෙනත් port එකක් (5001) භාවිතා කළා.
  • REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io: මේ environment variable එකෙන් තමයි කියන්නේ මේ Registry එක Docker Hub එකේ mirror එකක් විදිහට ක්‍රියාත්මක වෙන්න ඕනේ කියලා.

ඔයාට මේ mirror එකටත් TLS සහ authentication add කරන්න පුළුවන්, කලින් section එකේ විස්තර කරපු විදිහට.

Docker Client එක Mirror එකක් භාවිතා කරන්න Configure කිරීම:

දැන් ඔයාගේ Docker client (images pull කරන machine) එක මේ local mirror එක භාවිතා කරන්න configure කරන්න ඕනේ. මේකත් daemon.json file එක edit කිරීමෙන් කරන්න පුළුවන්.

{
  "registry-mirrors": ["http://localhost:5001"]
}

මෙහිදී, http://localhost:5001 කියන්නේ අපි run කරපු mirror Registry එකේ URL එක. ඔයා HTTPS භාවිතා කරනවා නම් https://localhost:5001 කියලා දෙන්න ඕනේ. ඒ වගේම certificate එකත් trust කරන්න ඕනේ, කලින් section එකේ විදිහට.

daemon.json file එක save කරලා Docker daemon එක restart කරන්න. දැන් ඔයා Docker Hub එකෙන් image එකක් pull කරනකොට, මුලින්ම මේ local mirror එකෙන් බලනවා. Image එක mirror එකේ නැත්නම්, mirror එක Docker Hub එකෙන් pull කරලා cache කරලා, ඔයාගේ client එකට දෙනවා.

Conclusion - ඉතින් මොකක්ද මේකේ තේරුම?

අද අපි Docker Private Registries ගැන ගොඩක් දේවල් කතා කළා. Docker Hub කියන්නේ පහසු විසඳුමක් වුණත්, Security, Control, Performance සහ Compliance වගේ පැති වලින් Private Registries ගොඩක් වාසිදායක බව ඔයාලට දැන් පැහැදිලි ඇති.

අපි Registry එකක් set up කරන හැටි, ඒක TLS සහ Authentication වලින් ආරක්ෂා කරන හැටි, images වල විශ්වසනීයත්වය තහවුරු කරන්න Docker Content Trust (Notary) භාවිතා කරන හැටි, සහ image pull කරන වේගය වැඩි කරන්න Registry Mirroring භාවිතා කරන හැටි පියවරෙන් පියවර බැලුවා.

මේ හැම concept එකක්ම ඔයාගේ Docker workflow එකට ගොඩක් වැදගත් වෙයි. විශේෂයෙන්ම enterprise environments වලදී මේවා භාවිතා කිරීමෙන් Security, Reliability, සහ Efficiency ගොඩක් වැඩි කරගන්න පුළුවන්. ඔයාගේ applications වල deployment process එක තවත් ශක්තිමත් කරගන්න මේ දැනුම ගොඩක් උදව් වෙයි කියලා මම විශ්වාස කරනවා.

මේ concepts ගැන තවත් ප්‍රශ්න තියෙනවා නම්, නැත්නම් ඔයාලා මේවා භාවිතා කරපු experience එකක් තියෙනවා නම් පහලින් comment එකක් දාලා යන්න අමතක කරන්න එපා! ඊළඟ project එකට මේක apply කරලා බලන්න! එහෙනම් තවත් article එකකින් හමුවෙමු!