Skip to content
VDS · Docker మరియు కంటైనర్‌లు

Docker: సాధారణ సమస్యల ట్రబుల్‌షూటింగ్

కంటైనర్ పదేపదే రీస్టార్ట్ అవుతోంది, పోర్ట్ వాడుకలో ఉంది, స్పేస్ లేదు, “permission denied”, ఒక సర్వీస్ దాని పక్కవాడిని చూడలేకపోతోంది — లక్షణాల పట్టిక మరియు ట్రబుల్‌షూటింగ్ విధానం.

23 ఆగస్టు, 2026న నవీకరించబడింది

కంటైనర్ సమస్యలలో దాదాపు అన్నీ డజను సాధారణ సమస్యలకే పరిమితమవుతాయి. నిర్ధారణ ఎప్పుడూ అదే మూడు కమాండ్లతో మొదలవుతుంది.

మొదటి మూడు కమాండ్లు

docker compose ps
docker compose logs --tail 100 <service>
docker inspect -f '{{.State.Status}} {{.State.ExitCode}} {{.State.OOMKilled}} {{.State.Error}}' <container>

స్థితి, లాగ్ చివరి పంక్తులు, మరియు ఎగ్జిట్ కోడ్ చాలా ప్రశ్నలకు సమాధానం ఇస్తాయి. ఆ తర్వాత లక్షణం ఆధారంగా ముందుకు సాగండి.

లక్షణాల పట్టిక

లక్షణంసంభావ్య కారణంఏమి చేయాలి
నిరంతరం Restartingయాప్లికేషన్ ప్రారంభంలోనే క్రాష్ అవుతోందిdocker compose logs --tail 200, చివరి లోపం కాదు, మొదటి లోపం చదవండి
ఎగ్జిట్ కోడ్ 137, OOMKilled: trueమెమరీ సరిపోలేదుపరిమితిని పెంచండి లేదా లీక్ను కనుగొనండి, వనరుల పరిమితులు చూడండి
ప్రారంభమైన వెంటనే ఎగ్జిట్ కోడ్ 1కాన్ఫిగరేషన్ లేదా వేరియబుల్స్లో లోపంdocker compose config — సబ్స్టిట్యూషన్లు తనిఖీ చేయండి
port is already allocatedపోర్ట్ను మరో ప్రాసెస్ ఆక్రమించిందిsudo ss -tulpn | grep :<port>
no space left on deviceడిస్క్ స్థలం లేదా ఇనోడ్లు అయిపోయాయిdf -h మరియు df -i, డిస్క్ స్థలం చూడండి
వాల్యూమ్ ఫైల్పై permission deniedUID సరిపోలడం లేదుdocker compose exec app id, ఆ తర్వాత chown లేదా PUID/PGID
యాప్లికేషన్కు డేటాబేస్ కనిపించడం లేదువేర్వేరు నెట్వర్క్లు లేదా localhostకు రిక్వెస్ట్Docker నెట్వర్క్లు చూడండి
Cannot connect to the Docker daemonసేవ అమలులో లేదు లేదా మీకు అనుమతులు లేవుsudo systemctl status docker, docker గ్రూప్
అంతా నెమ్మదిగా ఉంది, లోడ్ తక్కువగా ఉందిడిస్క్ బాటిల్నెక్iostat -x 2, డిస్క్ వేగం చూడండి

కంటైనర్ క్రాష్ అవుతోంది, కానీ లాగ్ ఖాళీగా ఉంది

ప్రాసెస్ ఏమీ ప్రింట్ చేయకముందే మరణించినప్పుడు ఇలా జరుగుతుంది. ప్రధాన కమాండ్కు బదులు షెల్తో ఇమేజ్ను మాన్యువల్గా అమలు చేయండి:

docker run --rm -it --entrypoint sh <image>

లోపల, స్టార్టప్ కమాండ్ను చేతితో అమలు చేయండి — లోపం స్క్రీన్పై కనిపిస్తుంది. అక్కడ ఉన్నప్పుడే, కాన్ఫిగరేషన్ ఫైల్స్ సరైన స్థానంలో ఉన్నాయో లేదో కూడా తనిఖీ చేయండి:

docker compose run --rm app cat /app/config.yaml

మార్పులు వర్తించడం లేదు

సాధారణ సందర్భం: మీరు ఫైల్ను సవరిస్తారు, రీస్టార్ట్ చేస్తారు, కానీ ఏమీ మారదు.

docker compose config          # does Compose see your changes
docker compose up -d --force-recreate app
docker compose exec app cat /etc/app/config.yaml

సాధారణంగా రెండు కారణాలు ఉంటాయి: ఫైల్ మీరు అనుకున్న స్థానం కాకుండా మరెక్కడో మౌంట్ అయి ఉంది, లేదా బిల్డ్ సమయంలో ఇమేజ్లోకి చేరిన కాపీని కంటైనర్ చూస్తోంది.

సమస్యను docker system prune -aతో పరిష్కరించకండి. ఇది ఉపయోగించని ఇమేజ్లు, నెట్వర్క్లు, మరియు బిల్డ్ కాష్ను తొలగిస్తుంది, --volumes ఫ్లాగ్తో పాటు డేటా ఉన్న వాల్యూమ్లను కూడా తొలగిస్తుంది. కంటైనర్ ఆగిన క్షణమే దాని వాల్యూమ్ “ఉపయోగించనిది” అవుతుంది. మొదట కారణాన్ని కనుగొనండి, ఆ తర్వాత శుభ్రం చేయండి.

అయినా ఎప్పుడు శుభ్రం చేయాలి

docker system df
docker image prune
docker builder prune
docker container prune

స్థలాన్ని సరిగ్గా ఏది ఆక్రమిస్తోందో docker system df చూపిస్తుంది: ఇమేజ్లు, బిల్డ్ కాష్, వాల్యూమ్లు, లేదా కంటైనర్ లాగ్లు. సాధారణంగా బిల్డ్ కాష్ కారణమవుతుంది — దాన్ని తొలగించడం సురక్షితం.

మెషీన్ స్పందించకపోతే

SSH కనెక్ట్ కావడం లేదు, సైట్ తెరుచుకోవడం లేదు — సాధారణంగా ఏదో కంటైనర్ మెమరీని మింగేసి, సిస్టమ్ స్వాప్లోకి వెళ్లి ఉంటుంది. మెషీన్ ప్యానెల్లోని కన్సోల్ ద్వారా లాగిన్ అవ్వండి. htop మరియు btop కోసం “Screen” మోడ్ అవసరం: టెక్స్ట్ లైన్ ద్వారా విండో పరిమాణం అందదు, కాబట్టి అది ఎప్పుడూ 80×24గానే ఉంటుంది.

free -h
sudo dmesg -T | tail -40
sudo systemctl restart docker

సిస్టమ్ అసలు బూట్ కాకపోతే, “Access” ట్యాబ్లో బూట్ మోడ్ను SystemRescue రికవరీ డిస్క్కు మార్చండి: మెషీన్ దానిలోకి రీబూట్ అవుతుంది, పాస్వర్డ్ లేకుండా root లాగిన్, మరియు డిస్క్ /dev/sdaగా కనిపిస్తుంది. అక్కడి నుండి మీరు పార్టిషన్ను మౌంట్ చేసి డేటాను తీసుకోవచ్చు.

తర్వాత కాదు, ముందే తనిఖీ చేయవలసినవి

  • లాగ్ పరిమాణ పరిమితులు సెట్ చేయబడ్డాయి — కంటైనర్ లాగ్లు చూడండి.
  • అన్ని సేవలకు మెమరీ పరిమితులు సెట్ చేయబడ్డాయి.
  • ఇమేజ్ వెర్షన్లు పిన్ చేయబడ్డాయి, మరియు పాత ఇమేజ్ తొలగించబడలేదు — కంటైనర్ అప్డేట్లు చూడండి.
  • డేటా కాపీ ఉంది మరియు ధృవీకరించబడింది — రీస్టోర్ డ్రిల్ చూడండి.