Docker systemd

Bonjour,

Je viens d’installer gitlab via docker (j’ai automatisé via ansible).
Jusque là, tout se passe plutôt bien et j’arrive à me connecter dessus.
Parce que je n’aurais pas besoin que le container soit lancé systématiquement, il n’est pas relancé à chaque redémarrage de la machine.
C’est là où je bloque, comment lancer le container plus facilement que :

docker run --detach  --hostname pc.local --publish 46443:443 --publish 46080:80 --publish 46022:22  --name gitlab   --restart no --volume /home/gitlab/config:/etc/gitlab  --volume /home/gitlab/logs:/var/log/gitlab   --volume /home/gitlab/data:/var/opt/gitlab   gitlab/gitlab-ce:latest

Ensuite, je mettrais ça dans une unité systemd pour gérer le service.
Comment, je peux lancer le container en mettant les variables dans un fichier de conf.
Il faut passer par docker-compose ?

C’est la première fois pour moi avec docker, tous liens intéressants seraient le bienvenu.

Salut,

je suis pas un pro de docker non plus, mais tu as essayé docker start ?
Tu peux choisir le nom de ton conteneur au lancement avec l’option --name, de cette manière tu peux le contrôler en utilisant son nom (c’est plus simple que le CONTAINER_ID ou que les noms choisis aléatoirement par docker).

Sputnik@debian-probook:~$ docker run --detach --hostname test1 --name test1 -it debian-ansible:buster
2ad05bc594dbfa34c3752d0de6989eb3bf2358e9b347daec6c93f2fc489445fd
Sputnik@debian-probook:~$ docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS               NAMES
2ad05bc594db        debian-ansible:buster   "bash"              5 seconds ago       Up 4 seconds                            test1
Sputnik@debian-probook:~$ docker stop test1
Sputnik@debian-probook:~$ docker ps -a
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS                     PORTS               NAMES
2ad05bc594db        debian-ansible:buster   "bash"              47 seconds ago      Exited (0) 4 seconds ago                       test1
Sputnik@debian-probook:~$ docker start test1
test1
Sputnik@debian-probook:~$ docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED              STATUS              PORTS               NAMES
2ad05bc594db        debian-ansible:buster   "bash"              About a minute ago   Up 3 seconds                            test1

je vais tester tout ça
en tout cas la doc n’est pas très explicite https://docs.docker.com/engine/reference/commandline/start/

a priori, c’est bien ça :

docker start gitlab

Merci Sputnik93
Pour le moment ça marche avec :

# cat /etc/systemd/system/gitlab.service 
[Unit]
Description=Gitlab
After=network-online.target
ConditionPathIsMountPoint=/home/gitlab
Requires=docker.service
After=docker.service
[Service]
Type=simple
ExecStart=/usr/bin/docker start -a gitlab
ExecStop=/usr/bin/docker stop -t 10 gitlab
[Install]
WantedBy=multi-user.target

Je peux gérer mon gitlab avec systemd :grinning:

1 J'aime