మీ స్వంత ఇమేజ్ రిజిస్ట్రీ
మీ స్వంత రిజిస్ట్రీ ఎప్పుడు అవసరం, పాస్వర్డ్ మరియు సర్టిఫికెట్తో ఎలా సెటప్ చేయాలి, అది ఎంత డిస్క్ తీసుకుంటుంది, మరియు పాత ఇమేజ్ల డంప్గా ఎలా మారకూడదు.
23 ఆగస్టు, 2026న నవీకరించబడింది
రిజిస్ట్రీ అనేది ఇమేజ్ల నిల్వ. మీకు స్వంత రిజిస్ట్రీ మూడు సందర్భాల్లో అవసరం: ఇమేజ్లు ప్రైవేట్గా ఉండి మీ ఇన్ఫ్రాస్ట్రక్చర్ నుండి బయటకు వెళ్లకూడదనుకున్నప్పుడు, బిల్డ్లు తరచుగా జరిగి బాహ్య డౌన్లోడ్ పరిమితులు అడ్డుపడినప్పుడు, లేదా మీరు ఒకే వస్తువును అనేక మెషీన్లపై డిప్లాయ్ చేసినప్పుడు.
సులభమైన ఎంపిక: registry:2
services:
registry:
image: registry:2
restart: unless-stopped
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_STORAGE_DELETE_ENABLED: "true"
volumes:
- ./data:/var/lib/registry
- ./auth:/auth:ro
ports:
- "127.0.0.1:5000:5000"
పాస్వర్డ్ను ఇలా సృష్టించండి:
mkdir -p auth
docker run --rm --entrypoint htpasswd httpd:2 -Bbn deploy 'long-password' > auth/htpasswd
docker compose up -d
పోర్ట్ను బయటకు ఎక్స్పోజ్ చేయవద్దు: సర్టిఫికెట్ ఉన్న వెబ్ సర్వర్ రిజిస్ట్రీ ముందు ఉంటుంది. మూడవ పక్ష రిజిస్ట్రీతో HTTP ద్వారా పనిచేయడానికి Docker నిరాకరిస్తుంది — అది సరైనదే, ఎందుకంటే దాని ద్వారా మీ మెషీన్లకు ఎగ్జిక్యూటబుల్ కోడ్ చేరుతుంది.
దానితో పనిచేయడం
docker login registry.example.com
docker tag myapp:1.5.0 registry.example.com/myapp:1.5.0
docker push registry.example.com/myapp:1.5.0
docker pull registry.example.com/myapp:1.5.0
curl -u deploy https://registry.example.com/v2/_catalog
curl -u deploy https://registry.example.com/v2/myapp/tags/list
docker login తర్వాత, ఆధారాలు ~/.docker/config.json లో సాధారణ టెక్స్ట్గా ఉంటాయి (base64 అనేది ఎన్క్రిప్షన్ కాదు). బిల్డ్ మెషీన్లపై, రీడ్-ఓన్లీ హక్కులతో ప్రత్యేక ఖాతాను సృష్టించండి.
పరిమాణ పరిమితి లేని, క్లీనప్ లేని రిజిస్ట్రీ డిస్క్ను నింపడానికి అత్యంత వేగవంతమైన మార్గం. ప్రతి బిల్డ్ లేయర్లను జోడిస్తుంది, ట్యాగ్ను తొలగించడం స్థలాన్ని ఖాళీ చేయదు: మీకు గార్బేజ్ కలెక్షన్ అవసరం. 40 GB ఉన్న VDS-1 పై, యాక్టివ్ ప్రాజెక్ట్ రిజిస్ట్రీ రెండు వారాల్లో డిస్క్ను నింపుతుంది.
క్లీనప్
ట్యాగ్ను తొలగించడం మరియు ఆ తర్వాత జరిగే గార్బేజ్ కలెక్షన్:
docker compose exec registry registry garbage-collect \
--delete-untagged /etc/docker/registry/config.yml
గార్బేజ్ కలెక్షన్ జరుగుతున్నప్పుడు మీరు రిజిస్ట్రీని ఆపివేయాలి — లేకపోతే ఏకకాల పుష్ లేయర్లను కోల్పోవచ్చు:
docker compose stop registry
docker compose run --rm registry registry garbage-collect --delete-untagged /etc/docker/registry/config.yml
docker compose start registry
దీన్ని వారానికి ఒకసారి షెడ్యూల్ చేసిన జాబ్గా సెటప్ చేయండి మరియు డిస్క్ స్థలంపై నిఘా ఉంచండి.
ప్రత్యామ్నాయం: Git సర్వర్తో కలిపి ఉన్న రిజిస్ట్రీ
మీరు ఇప్పటికే Forgejo లేదా Gitea ను సెటప్ చేసి ఉంటే, వాటిలో Docker ఇమేజ్లతో సహా అంతర్నిర్మిత ప్యాకేజీ నిల్వ ఉంటుంది. ప్రత్యేక సేవ అవసరం లేదు: యాక్సెస్ అదే ఖాతాల ద్వారా జరుగుతుంది, ఇమేజ్లు కోడ్ పక్కనే కనిపిస్తాయి. చిన్న ప్రాజెక్ట్లకు ఇది ప్రత్యేక registry:2 కంటే సౌకర్యవంతం.
సాధారణ తప్పులు
- రిజిస్ట్రీ అధికారం లేకుండా తెరిచి ఉంది. దాని ద్వారా ఎవరైనా మీ స్వంత ప్రొడక్షన్ మెషీన్పై డిప్లాయ్ అయ్యే ఇమేజ్ను చొప్పించవచ్చు.
- వర్షన్లకు బదులుగా
latestట్యాగ్. రిజిస్ట్రీ పునరుత్పత్తి వనరుగా ఉండటం ఆగిపోతుంది: సరిగ్గా ఏది డిప్లాయ్ అయిందో స్పష్టంగా తెలియదు. కంటైనర్లను అప్డేట్ చేయడం చూడండి. - డేటాబేస్ ఉన్న అదే డిస్క్పై నిల్వ. పుష్లలో పెరుగుదల డిస్క్ బ్యాండ్విడ్త్ను తినేసి ప్రొడక్షన్ సేవను నెమ్మదిస్తుంది — డిస్క్ వేగం చూడండి.
./dataడైరెక్టరీ మీ బ్యాకప్లలో లేదు. మీ దగ్గర సోర్స్లు లేని అన్ని ఇమేజ్లను మీరు కోల్పోతారు. ఏమి బ్యాకప్ చేయాలి చూడండి.