• M600@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    10 小时前

    I just setup Jellyfin on docker the other day for the first time.

    It just occurred to me that I don’t know how to update docker.

    Any advice?

    • Tenkard@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      1 小时前

      Also depends on how you specified image in the docker. If it has no version or latest as version it will update otherwise it may be fixed

    • Avid Amoeba@lemmy.ca
      link
      fedilink
      arrow-up
      7
      ·
      3 小时前

      You could use a systemd unit file:

      [Unit]
      Description=docker_compose_systemd-sonarr
      After=docker.service 
      Requires=docker.service
      
      [Service]
      TimeoutStartSec=0
      
      WorkingDirectory=/var/lib/sonarr
      
      ExecStartPre=-/usr/bin/docker compose kill --remove-orphans
      ExecStartPre=-/usr/bin/docker compose down --remove-orphans
      ExecStartPre=-/usr/bin/docker compose rm -f -s -v
      ExecStartPre=-/usr/bin/docker compose pull
      ExecStart=/usr/bin/docker compose up
      
      Restart=always
      RestartSec=30
      
      [Install]
      WantedBy=multi-user.target
      

      You’d place your compose file in the working dir /var/lib/sonarr. Depending on what tag you’ve set for the image in the compose file, it would be autoupdated, or stay fixed. E.g. lscr.io/linuxserver/sonarr:latest would get autoupdated whereas lscr.io/linuxserver/sonarr:4.0.10 would keep the container at version 4.0.10. If you want to update from 4.0.10, you’d have to change it in the compose file.

      • M600@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        7 小时前

        Thanks! I’ll check that out, I’m really loving how quick and easy docker has been so far.

    • talentedkiwi@sh.itjust.works
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      9 小时前

      Did you use docker compose file or just run a command to start the container?

      Edit: I always use compose files. For that you can do the following:

      docker compose pull
      docker compose down
      docker compose up -d
      

      You don’t technically need the stop, but I’ve found once or twice in the past where it was good to stop because of image dependencies that I forgot to put in my compose.

      For running a command directly I found this website that seems to summarize it pretty well I think:

      https://www.cherryservers.com/blog/how-to-update-docker-image

      • M600@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        7 小时前

        Yes, I used docker compose. Do I need to do anything to clean up with this method?

        • talentedkiwi@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          6 小时前

          Now that you mention it, I always do a

          docker system prune -f
          

          This will clean up old images that are no longer used. I setup an alias command in Linux to do all of those commands.

          I just named it docker_update and saved it in my ~/.bashrc

          • talentedkiwi@sh.itjust.works
            link
            fedilink
            arrow-up
            2
            ·
            6 小时前

            I see someone mention watchtower, while not a bad thing, I just prefer to manually update. This helps to ensure any breaking changes don’t break my system. Especially with something like Immich at it’s had a lot of them recently as they work towards stable. I just generally subscribe to their release and do updates as necessary.

    • CosmicTurtle0@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      10 小时前

      If you set up using compose and don’t have the version pinned:

      dockee compose down && docker compose pull jellyfin && docker compose up -d