:: Re: [DNG] [FYI] Docker upgrade fail…
Top Page
Delete this message
Reply to this message
Author: Olaf Meeuwissen
Date:  
To: dng
Subject: Re: [DNG] [FYI] Docker upgrade fails to restart daemon

On 2018-12-29 Olaf Meeuwissen wrote:

> On 2018-11-12, Olaf Meeuwissen wrote:
>
>> [...]
>>
>> When upgrading a package that provides a daemon, I expect the upgrade to
>> shut down the daemon provided by the old version and start the one from
>> the new version. I do not want anything to "muck" with that, be that
>> daemontools or anything else.
>> Keeping an otherwise running daemon running is a different story.
>>
>> I checked to /var/lib/dpkg/info/docker-ce.{prerm,postinst} scripts. For
>> 18.06.1~ce~3-0~debian these include calls to invoke-rc.d to stop and
>> start the daemon. As of 5:18.09.0~3-0~debian-stretch these calls are
>> gone. The only stop/start mechanism supported is systemd :-(
>> Ditto for containerd.io :-(
>>
>> FWIW, I've submitted https://github.com/docker/for-linux/issues/482
>
> I've been working with upstream and submitted a patch a couple of days
> ago. Yesterday that patch was merged onto the 18.09 branch and cherry
> picked on the master branch of docker-ce-packaging. The next release
> of the docker-ce package should have working sysvinit support again.


The next release is out (5:18.09.1~3-0~debian-stretch) and the upgrade
didn't quite go as smoothly as I had hoped for :-/

# But then again, upstream merged my changes before I thoroughly tested
# them ;-)

Before upgrading, you should stop a running Docker Engine. You can do
so with

$ sudo invoke-rc.d docker stop

Please note that this will take down any running containers.

If you happened to apt upgrade before doing so, you'll see something
like the following:

$ sudo apt upgrade
[...]
Preparing to unpack .../docker-ce_5%3a18.09.1~3-0~debian-stretch_amd64.deb ...
Unpacking docker-ce (5:18.09.1~3-0~debian-stretch) over (5:18.09.0~3-0~debian-stretch) ...
Setting up containerd.io (1.2.2-1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up docker-ce-cli (5:18.09.1~3-0~debian-stretch) ...
Setting up docker-ce (5:18.09.1~3-0~debian-stretch) ...
update-alternatives: using /usr/bin/dockerd-ce to provide /usr/bin/dockerd (dockerd) in auto mode
[....] Starting Docker: dockerinvoke-rc.d: initscript docker, action "start" failed.
dpkg: error processing package docker-ce (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
docker-ce

Fixing up isn't very difficult. Just stop the daemon and configure any
pending packages, like so:

$ sudo invoke-rc.d docker stop
$ sudo dpkg --configure --pending

After the upgrade, start the daemon again with:

$ sudo invoke-rc.d docker start

Whether or not containers that were running before you stopped the
daemon will be restarted depends on their restart policy.

Hope this helps,
--
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
 Support Free Software                        https://my.fsf.org/donate
 Join the Free Software Foundation              https://my.fsf.org/join