In the Pi in my boat I need to use --max-concurrent-downloads 1 --max-download-attempts 10
because the network is a bit wonky from the cabin to the boat. When I stop the running daemon service and then restart the daemon from the command line with sudo dockerd --max-concurrent-downloads 1 --max-download-attempts 10
all pulls work as they should, even if they take a long time.
But running from the systemd service, where I have added the options to the ExecStart line, they do not seem to do anything. I’m not sure, because I don’t know how to check it, even after an hour of googling, but when running the services all my images stop with the “unexpected EOF” error before they are finished. The rest of the service file should be as when Docker was installed, se below. Should not these options be obeyed by Docker when running from the service, and how can I see if they are?
Docker systemd service file
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service time-set.target
Wants=network-online.target containerd.service
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --max-concurrent-downloads 1 --max-download-attempts 10
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3
# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target