Docker-compose+Swarm部署mysql+redis+springboot,注意 这里你直接启动可能报错,需要node节点存在你本地上传的springboot项目的镜像,nvalid mount config for type "bind": bind source path does not exist: /docker/mysql/db" ,我这里启动swarm的时候mysql还报了这个错.这是因为volumes里面的参数为映射本地和docker容器里面的文件夹和目录,我这里volumes: - "/docker/mysql/db:/var/lib/mysql",/docker/mysql/db就是要映射的本地目录,你需要在swarm的node节点上创建这些目录,否则启动报错
这里还有个问题.当docker-compose启动的应用在Docker-compose.yml设置了deploy: mode: replicated replicas: 2 ,多个节点启动时,有时候会为了防止调度程序将任务放置在多节点集群中的管理器节点上,可以将manager节点的状态设为Drain ,调度程序优雅地停止节点上的任务,并在活动节点上调度任务。调度程序不会将新任务分配给状态为Drain的节点,具体设置drain状态的命令参考https://blog.csdn.net/weixin_38170853/article/details/99770637
还有一点是Docker-compose.yml设置了mysql密码后,关闭容器修改配置文件mysql密码再次启动发现还是原来的密码,这是因为我们做了volume持久化导致密码持久化了,重新启动也没法改变,这里有解决办法https://segmentfault.com/a/1190000022014278