"Docker" konteinerių vėliavėlė --restart naudojama konteinerio paleidimo iš naujo strategijai apibrėžti. Dvi parinktys, --restart=unless-stoped ir --restart=always, turi keletą subtilių, bet svarbių skirtumų:
--restart=visada:
- Konteineris visada bandys paleisti iš naujo, nesvarbu, kaip jis sustojo.
- Jei konteineris sugenda, jis automatiškai paleidžiamas iš naujo.
- Jei "Docker" demonas bus paleistas iš naujo, konteineris taip pat bus paleistas automatiškai.
- Net jei konteineris sustabdomas rankiniu būdu (pvz., naudojant "docker stop" komandą), jis bus paleistas iš naujo, kai "Docker" demonas bus paleistas iš naujo.
--restart=unless-stoped:
- Konteineris automatiškai paleidžiamas iš naujo, kai jis sugenda.
- Jei "Docker" demonas bus paleistas iš naujo, konteineris taip pat bus paleistas automatiškai.
- Pagrindinis skirtumas: jei konteineris sustabdomas rankiniu būdu (pvz., naudojant "docker stop" komandą), jis nebus paleistas automatiškai, kai "Docker" demonas bus paleistas iš naujo.
Pagrindinių skirtumų santrauka:
Visada strategija bando iš naujo paleisti konteinerį visais atvejais, taip pat ir po rankinio sustabdymo. Nebent sustabdyta strategijaGerbkite sprendimą sustabdyti rankiniu būdu, kuri automatiškai nepaleidžia konteinerio iš naujo po rankinio sustabdymo.
Atrankos rekomendacijos:
Jei norite, kad konteineris veiktų visą laiką, kad ir kas nutiktų, rinkitės visada. Jei norite, kad konteineris būtų sustabdytas rankiniu būdu ir sustabdytas, net ir paleidus "Docker" iš naujo, pasirinkite nebent. Šis pasirinkimas yra svarbus valdant ir prižiūrint konteinerius, ypač kai tam tikras paslaugas reikia laikinai sustabdyti arba prižiūrėti. "Unless-Stoped" paprastai laikoma lankstesne galimybe, nes ji leidžia administratoriams prireikus rankiniu būdu valdyti konteinerio būseną.
|