Så här startar du om en Docker-container automatiskt när den slutar svara

Senaste uppdatering: 02/07/2026
Författare: Daniel Terrasa

  • Använda Dockers inbyggda omstartspolicyer för att hantera systemfel.
  • Implementering av anpassade skript och cron för containrar med ohälsosamma tillstånd.
  • Avancerad integration med systemd för att styra start- och avstängningssekvensen.
  • Externa övervakningsalternativ och verktyg som Podman Quadlet.
Så här startar du om en Docker-container automatiskt när den slutar svara

Jag är säker på att detta har hänt dig: du har en tjänst som körs Hamnarbetare som av mystiska skäl fastnar med några dagars mellanrum. Hur startar man om en Docker-container automatiskt när den slutar svara? Det är frustrerande att försöka optimera kod eller konfigurationer och få ingenting att fungera, bara för att inse att en enkel manuell omstart löser problemet och håller allt igång smidigt i ytterligare en vecka. Istället för att ständigt kontrollera tiden är den ideala lösningen att konfigurera ett system som gör det här smutsiga jobbet åt dig.

Att hantera containertillgänglighet innebär mer än att bara säkerställa att de startar automatiskt när servern slås på. se till att de svarar korrekt till förfrågningarna. Ibland verkar containern vara "levande" för Docker, men applikationen inuti svarar inte, vilket tvingar oss att leta efter lösningar som sträcker sig från grundläggande daemonparametrar till skapandet av komplexa tjänster i operativsystemet.

Dockers inbyggda omstartspolicyer

Det enklaste sättet att automatiskt starta om en Docker-container är att använda flaggan --restart när du startar en container eller använder kommandot docker update Om containern redan är skapad erbjuder Docker flera alternativ beroende på dina behov. Till exempel policyn alltid Detta gör att containern alltid startas om, oavsett om processen avslutades med ett fel eller om det var själva Docker-daemonen som startade om.

Exklusivt innehåll - Klicka här  Hur kan jag översätta en text i Google Translate?

Om du föredrar något mer kirurgiskt, om inte stoppad Detta är det bästa valet för många. Den här konfigurationen är identisk med den föregående, förutom att om du manuellt stoppar containern för underhåll, Docker kommer inte att försöka slå på den. automatiskt efter en omstart av servern, med respekt för ditt manuella beslut.

För de som bara vill agera som svar på kritiska misslyckanden finns det vid felDen här policyn utlöser bara en omstart om containern avslutas med en avslutningskod som inte är noll. Du kan till och med begränsa detta genom att lägga till ett maximalt antal återförsök, vilket förhindrar att systemet går in i en oändlig omstartsloop om felet är ihållande och kritiskt.

Så här startar du om en Docker-container automatiskt när den slutar svara
Så här startar du om en Docker-container automatiskt när den slutar svara

Automatisering för "ohälsosamma" containrar

Det är här det blir intressant. Ibland visas en behållare fortfarande som "Upp" (på), men dess hälsostatus är ohälsosam eftersom den inte klarar interna kontroller. Tidigare policyer är ineffektiva här, eftersom processen inte är tekniskt död. För att lösa detta kan vi implementera direktivet HÄLSOKONTROLL i Dockerfilen eller i Docker Compose-filen, definiera ett kommando (t.ex. ett curl till en specifik port) för att verifiera att appen svarar.

När vi har konfigurerat hälsokontrollen kan vi skapa en Bash-skript som körs med några minuters mellanrum med hjälp av crontab från Linux. Det här skriptet ska filtrera bort containrar som är i ett tillstånd unhealthy eller de som har avslutat med felkod 128 och kört en docker restart om dem.

Exklusivt innehåll - Klicka här  Hur man installerar en skrivare utan en CD

För att detta ska fungera smidigt och automatiskt starta om en Docker-container är det viktigt att användaren som kör cron-jobbet har nödvändiga behörigheter. behörigheter som krävs i dockergruppenPå så sätt övervakar systemet miljön var 5:e eller 10:e minut och identifierar alla tjänster som har blivit "zombie", vilket garanterar nästan total tillgänglighet utan mänsklig inblandning.

docker i windows 10
Relaterad artikel:
Hur man installerar Docker på Windows 10

Avancerad integration med systemd

När du arbetar i mer professionella miljöer kanske du vill att dina containrar ska bete sig som inbyggda Linux-tjänsterIntegrera Hamnarbetare Med Systemd kan du hantera komplexa beroenden, som att säkerställa att databasen startar före webbapplikationen. Detta uppnås genom att skapa filer. .service i rutten /etc/systemd/system/.

Vi kan designa en avstängnings- och påslagningssekvens Kontrollerad. Med hjälp av anpassade skript länkade till systemd är det möjligt att stoppa containrar i omvänd ordning av deras beroenden för att förhindra datakorruption. Med hjälp av typen oneshot och konfigurerar targets lämplig (såsom multi-user.target o shutdown.target), hanterar servern hela containerns livscykel.

Ett annat kraftfullt alternativ för att automatiskt starta om en Docker-container när den slutar svara är att använda flaggan --rm i kombination med systemd. Detta gör att containern kan tas bort vid stopp och en ny skapas från basavbildningen vid start, vilket säkerställer att Behållaren måste alltid vara ren och oförändrad.delegera datapersistens enbart till externa volymer.

Exklusivt innehåll - Klicka här  Jag kan inte avinstallera ett program
Använd Docker Desktop med WSL
Så här startar du om en Docker-container automatiskt när den slutar svara

Externa verktyg och moderna alternativ

Om du inte vill bry dig om att skriva Bash-skript finns det tredjepartsverktyg tillgängliga. Det finns öppen källkod-applikationer som är specifikt utformade för att starta om containrar baserat på en etablerat schemaDetta är mycket användbart för återkommande uppgifter som att förnya SSL-certifikat. Likaså verktyg som Upptid Kuma De låter dig övervaka tjänsternas hälsa från en visuell instrumentpanel och skicka meddelanden till Telegram eller Gotify om något går fel. De är alla mycket användbara för att automatiskt starta om en Docker-container när den slutar svara.

För dig som letar efter ett lättare eller mer naturligt alternativ, Podman Det är ett utmärkt alternativ. Tack vare dess daemonlösa arkitektur och funktionalitet KvurlingDet låter dig skapa enkla deklarativa filer som systemd automatiskt konverterar till optimerade tjänster, vilket erbjuder en mycket mer organisk integration än traditionell Docker.

Att ha fullständig kontroll över dina tjänsters livscykel innebär att kombinera användningen av omstartspolicyer, konstant övervakning genom hälsokontroller och, i mer komplexa fall, stöd från systemd eller övervakningsverktyg så att din infrastruktur är robust och inte är beroende av att någon kommer ihåg att starta om servern manuellt varje vecka.