Cum setez un container docker sa porneasca automat cand booteaza linux?

SQL Server nu merge pe Ubuntu 22.04 LTS asa ca am ales solutia cu docker.
Am instalat docker:

Am instalat imaginea cu SQL Server:

Dau restart la PC si pornesc container-ul:

Ma intreb daca container-ul poate porni automat cand bootez PC-ul si care ar fi comanda ?

PS:
Am folosit, a mers cu:

docker update --restart=always container_id

la docker run ar trebui sa ai un --restart=always

1 Like

Scrie un systemd config care se asigura ca e containerul pornit.

Uite aici un exemplu:

2 Likes

Poți instala portainer pentru o interfață mai prietenoasă pentru configurarea containerelor.

Eu cred că nu-ți pornește serviciul docker la restart dacă nu ai setat chestia asta.

Scroll la Configure docker to start on boot

vrei sa foloseti in productie SQL Server plasat pe Docker, sau in dev ?
Pe productie se recomanda in docker de pus baza sau direct pe server ?

O data trebuie sa te asiguri ca Docker porneste la boot:

systemctl enable docker

Mie mi se pare mai comod de lucrat cu Docker Compose, unde pui restart: always la serviciul/containerul tau in YAML ca sa porneasca un serviciu la boot (si in caz de crash).

https://docs.docker.com/compose/compose-file/05-services/#restart

2 Likes

Docker pentru development, nu in productie.

Eu recomand puternic sa nu se foloseasca restart always pentru acest scop.

Risti sa te trezesti cu containere fantoma din tot felul de stackuri care iti blocheaza porturile si iti mananca resursele. Apoi, vrei sa le inchizi: ori te duci in proiect si dai cu docker compose down, ori dai docker stop manual la fiecare, dar surpriza, la urmatorul rr de docker, ti se vor aprinde la loc daca nu le dai si rm.

De-asta, mai bine folosesti systemd pentru orice long-running service. Poti sa dai disable/enable usor si este foarte clar ce vrei sa se ruleze la rr si ce nu.

1 Like

in loc de restart always poti sa foloseste restart unless-stopped pentru chestia asta.
eu asa fac pt toate containerele dev si nu au fost probleme.
nu stiu daca e cea mai buna metoda, dar cata vreme a functionat fara probleme… merg pe ea :slight_smile:

Asa am facut acu ceva timp si a fost ok :smiley:

Da, trebuie --restart unless-stopped.