docker/ Sett opp Docker som en service

OBS! Denne er egentlig ikke nødvendig lenger

Ved riktig bruk av restart i docker-compose-fila, vil denne starte igjen også etter reboot hvis den allerede er aktiv:

https://github.com/compose-spec/compose-spec/blob/master/spec.md#restart

restart defines the policy that the platform applies on container termination.

no: The default restart policy. It does not restart the container under any circumstances.

always: The policy always restarts the container until its removal.

on-failure: The policy restarts the container if the exit code indicates an error.

unless-stopped: The policy restarts the container irrespective of the exit code but stops restarting when the service is stopped or removed.

unless-stopped er å foretrekke.

  1. Lag service-fila:

[/etc/systemd/system/[navn på tjeneste].service]

Vanlig docker-tjeneste

[Unit]
Description=[Navn på dockertjenesten]
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
# In home directory for s specific service with separate folders
WorkingDirectory=/home/[bruker]/mapper/nedover/
# In /etc for docker specific services
WorkingDirectory=/etc/docker/compose/%i
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

Portainer

[Unit]
Description=Portainer
Requires=docker.service
After=docker.service

[Service]
Restart=always
User=root
Group=docker
WorkingDirectory=/home/[bruker]/portainer/

# Shutdown container (if running) when unit is stopped
ExecStartPre=/usr/bin/docker-compose -f portainer.yml down

# Start container when unit is started
ExecStart=/usr/bin/docker-compose -f portainer.yml up

# Stop container when unit is stopped
ExecStop=/usr/bin/docker-compose -f portainer.yml down

[Install]
WantedBy=multi-user.target

Portainer compose

  1. Legg til service-fila: sudo systemctl enable [servicenavn]

  2. Start service: sudo systemctl start [servicenavn]

Oppdatere Portainer

  1. Stopp service: sudo systemctl stop portainer

  2. Hent ned nyeste portainer: sudo docker pull portainer/portainer-ce:latest

  3. Start service: sudo systemctl start portainer


Last modified: Thu Dec 7 12:30:12 2023