Skip to content

axelhahn/bash-rootless-docker-updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Axels smart updater for rootless docker

Bash script to update your rootless docker installation.

👤 Author: Axel Hahn
🧾 Source: https://github.com/axelhahn/bash-rootless-docker-updater
📜 License: GNU GPL 3.0

Installation

Get the updater script with git clone or download of the achive. The location of the script can be anywhere.

Usage

Just run the script ./update-rootless-docker.sh

What happens:

  • It downloads an eol check script (on the 1st run) - see https://git-repo.iml.unibe.ch/iml-open-source/eol-check/
  • If version check detects an up to date version then it stops with a friendly message
  • If a minor version update is available, it will stop rootless docker service and install the current version

Performing Update

./update-rootless-docker.sh 


   =====|  AXELS SMART UPDATER FOR ROOTLESS DOCKER  v0.1  |=====


INFO: Downloading eol_check.sh...
⚠️ Docker Engine v20.10.14: Update with new major version is available: '28.4.0'.
❌ This version is not maintained anymore.
❌ Support end detected.
   End of life date: 2023-12-10 (641 days ago)

INFO: Updating rootless docker ...
      > Stopping docker service ...
      > Removing file ~/bin/dockerd ...

INFO: Installing rootless docker...
# Installing stable version 28.4.0
# Executing docker rootless install script, commit: 5c8855edd778525564500337f5ac4ad65a0c168e
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 78.2M  100 78.2M    0     0   104M      0 --:--:-- --:--:-- --:--:--  104M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.6M  100 16.6M    0     0  91.7M      0 --:--:-- --:--:-- --:--:-- 91.9M
+ PATH=/home/axel/bin:/home/axel/.local/bin:/home/axel/.config/composer/vendor/bin:/home/axel/bin:/home/axel/.local/bin:/home/axel/.config/composer/vendor/bin:/home/axel/bin:/home/axel/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/rocm/bin
+ /home/axel/bin/dockerd-rootless-setuptool.sh install
[WARNING] File already exists, skipping: /home/axel/.config/systemd/user/docker.service
[INFO] starting systemd service docker.service
+ systemctl --user start docker.service
+ sleep 3
+ systemctl --user --no-pager --full status docker.service
● docker.service - Docker Application Container Engine (Rootless)
     Loaded: loaded (/home/axel/.config/systemd/user/docker.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-09-11 08:51:55 CEST; 3s ago
 Invocation: 25a81ab3aa524dd5a2c89a7a90f55a5a
       Docs: https://docs.docker.com/go/rootless/
   Main PID: 8755 (rootlesskit)
      Tasks: 68
     Memory: 227.4M (peak: 227.4M)
        CPU: 1.351s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/docker.service
             ├─8755 rootlesskit --state-dir=/run/user/1000/dockerd-rootless --net=vpnkit --mtu=1500 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /home/axel/bin/dockerd-rootless.sh
             ├─8763 /proc/self/exe --state-dir=/run/user/1000/dockerd-rootless --net=vpnkit --mtu=1500 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /home/axel/bin/dockerd-rootless.sh
             ├─8780 vpnkit --ethernet /run/user/1000/dockerd-rootless/vpnkit-ethernet.sock --mtu 1500 --host-ip 0.0.0.0
             ├─8795 dockerd
             └─8823 containerd --config /run/user/1000/docker/containerd/containerd.toml

Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670334417+02:00" level=warning msg="WARNING: No io.weight (per device) support"
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670342933+02:00" level=warning msg="WARNING: No io.max (rbps) support"
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670351620+02:00" level=warning msg="WARNING: No io.max (wbps) support"
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670359555+02:00" level=warning msg="WARNING: No io.max (riops) support"
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670368862+02:00" level=warning msg="WARNING: No io.max (wiops) support"
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670409149+02:00" level=info msg="Docker daemon" commit=249d679 containerd-snapshotter=false storage-driver=overlay2 version=28.4.0
Sep 11 08:51:56 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:56.670493228+02:00" level=info msg="Initializing buildkit"
Sep 11 08:51:57 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:57.370797054+02:00" level=info msg="Completed buildkit initialization"
Sep 11 08:51:57 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:57.372917008+02:00" level=info msg="Daemon has completed initialization"
Sep 11 08:51:57 axels-laptop dockerd-rootless.sh[8795]: time="2025-09-11T08:51:57.372953748+02:00" level=info msg="API listen on /run/user/1000/docker.sock"
+ DOCKER_HOST=unix:///run/user/1000/docker.sock
+ /home/axel/bin/docker version
Client:
 Version:           28.4.0
 API version:       1.51
 Go version:        go1.24.7
 Git commit:        d8eb465
 Built:             Wed Sep  3 20:56:28 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.4.0
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.7
  Git commit:       249d679
  Built:            Wed Sep  3 20:58:50 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.28
  GitCommit:        b98a3aace656320842a23f4a392a33f46af97866
 runc:
  Version:          1.3.0
  GitCommit:        v1.3.0-0-g4ca628d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
 rootlesskit:
  Version:          2.3.4
  ApiVersion:       1.1.1
  NetworkDriver:    vpnkit
  PortDriver:       builtin
  StateDir:         /run/user/1000/dockerd-rootless
 vpnkit:
  Version:          
+ systemctl --user enable docker.service
[INFO] Installed docker.service successfully.
[INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service`
[INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger axel`

[INFO] CLI context "rootless" already exists
[INFO] Using CLI context "rootless"
Current context is now "rootless"
Warning: DOCKER_HOST environment variable overrides the active context. To use "rootless", either set the global --context flag, or unset DOCKER_HOST environment variable.

[INFO] Make sure the following environment variable(s) are set (or add them to ~/.bashrc):
export PATH=/home/axel/bin:$PATH

[INFO] Some applications may require the following environment variable too:
export DOCKER_HOST=unix:///run/user/1000/docker.sock

Up to date message

If you start the script again it shows an up to date message and stops with exitcode 0.

./update-rootless-docker.sh


   =====|  AXELS SMART UPDATER FOR ROOTLESS DOCKER  v0.1  |=====


INFO: Downloading eol_check.sh...
✅ Docker Engine v28.4.0: You are up to date.
   OK, your version is maintained.

   Nothing to do :-)

If no rootless docker is installed, the script will ask you if you want to install it.

About

Bash script for a smart update of your rootless docker installation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages