Upgrading Docker Redux
It’s less than two months since I last wrote about Upgrading Docker, but things have changed again.
Part of my problem last time was that the apt repos had quietly moved from HTTP to HTTPS. This time around the repos have more visibly moved, bringing with them a new install target ‘docker-engine’, and the change has been announced.
Beware vanishing Docker options
Following Jessie’s guidance I purged my old Docker and installed the new version. This had the unintended consequence of wiping out my /etc/defaults/docker file and the customised DOCKER_OPTS I had in there to use the overlay filesystem.
Without the right options in place the Docker daemon wouldn’t start for me:
[email protected]:~$ sudo service docker start docker start/running, process 48822 [email protected]:~$ sudo docker start 5f4af8edf203 Cannot connect to the Docker daemon. Is 'docker -d' running on this host? [email protected]:~$ sudo docker -d Warning: '-d' is deprecated, it will be removed soon. See usage. WARN please use 'docker daemon' instead. INFO Listening for HTTP on unix (/var/run/docker.sock) FATA Error starting daemon: error initializing graphdriver: "/var/lib/docker" contains other graphdrivers: overlay; Please cleanup or explicitly choose storage driver (-s <DRIVER>)
NB It looks like Docker is running after I start its service, there’s no indication that it immediately fails. I’m also not the first to notice that one part of Docker tells you to use ‘docker -d’, and then another scolds you that it should be ‘docker daemon’ it’s now been fixed.
Don’t use my old script
Last time around I included a script that wrote container IDs out to a temporary file then upgraded Docker and restarted the containers that were running. It’s not just a case of adding the new repo and changing the script to use ‘docker-engine’ rather than ‘lxc-docker’ because if (as I did) you purge the old repos first then there isn’t a ‘docker’ command left in place to run the containers. I’d suggest breaking the script up to firstly record the running container IDs and then go through the upgrade process.
Filed under: Docker | Leave a Comment
Tags: APT, Docker, docker-engine, lxc-docker, repo, repository, upgrade