How can I see if the daemon obeys startup options from the systemd service file?

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

Systemd just executes the process which can be seen in the process list using the ps auxf command command. Or if ps auxf doesn’t work, ps aux without the “f”.

systemctl status docker can also show you the executed command.

Don’t forget to restart Docker and if you just edit the systemd unit file, you need to reload the systemd daemon.

systemctl daemon-reload
systemctl restart docker

Also make sure you are editiring the right file. If you don’T mind acidentally stoping Docker, make an intentional error in the file and if Docker can still run, that file was not the correct file.

Thanks! Tried it, and it was the right file. And it works downloading now. :smiley: