Adding nodes to docker swarm

We have a swarm running docker 1.13 to which I need to add 3 more nodes running docker 17.04.

  1. Is this possible or will it cause problems?
  2. Will it be possible to update the old nodes without bringing the entire swarm down?


  • Unable to SSH to a docker container from docker host
  • Logging from multiprocess docker containers
  • Docker application deployment
  • IBM-Bluemix: image reported by IBM Containers compressed - smaller than local Docker engine
  • kubectl not able to pull the image from private repository
  • Configure fig to run one container before another
  • Apache Tomcat 8 not starting within a docker container
  • Gulp build into Docker container when NODE_ENV=production
  • Restart postgres in a docker environment
  • Docker for windows10 run django fail: Can't open file '': [Errno 2] No such file or directory
  • Cannot leave swarm mode
  • How to deploy AngularJS app using nginx + docker to Elastic Beanstalk?
  • One Solution collect form web for “Adding nodes to docker swarm”

    I ran into this one myself yesterday and the advice from the Docker developers is that you can mix versions of docker on the swarm managers temporarily, but you cannot promote or demote nodes that don’t match the version on all the other swarm managers. They also recommended upgrading all managers before upgrading workers.

    According to that advice, you should upgrade the old nodes first, one at a time to avoid avoid bringing down the cluster. If containers are deployed to those managers, you’ll want to configure the node to drain with docker node update --availability drain $node_name first. After the upgrade, you can bring is back into service with docker node update --availability active $node_name.

    When trying to promote a newer node into an older swarm, what I saw was some very disruptive behavior that wasn’t obvious until looking at the debugging logs. The comments on this issue go into more details on Docker’s advice and problems I saw.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.