在前面的文章中,我们介绍Docker Compose,缺点是不能在分布式多机器上使用;我们还介绍了Docker swarm,缺点是不能同时编排多个服务,所以才有了Docker Stack,可以在分布式多机器上同时编排多个服务。
我们使用前面文章 《Docker Compose介绍及使用入门》 中的2.3节的案例进行如下Docker Stack的演示。
父工程demo包含两个子工程:
务必确保两个子工程可以正常运行再进行下面的操作。
分别在service1和service2目录下执行如下命令,分别打包镜像:
然后执行 docker images 查看一下镜像是否正常创建成功:
我自己需要将本地创建好的docker镜像service1和service2迁移到远程的阿里云服务器上,因为docker swarm集群都是在上面搭建的,后面docker stack实验的进行也是在上面进行。
方式一:推送和拉取
然后登录自己的Docker Hub账户检查下镜像是否成功push了。如果OK的话,那么登录阿里云的远程服务器,执行如下的镜像pull操作。
然后执行 docker images 查看镜像是否导入成功。
方式二:导出和导入
然后我们将这两个镜像通过远程SFTP的方式上传到服务器上,存放的目录为 /root/docker-images-zip ,再执行如下的命令就可以将这两个镜像加载到远程服务器的本地镜像仓库中了。
然后执行 docker images 查看镜像是否导入成功。
本地有这两个镜像之后,我们编写compose文件内容如下,文件路径及文件名为 /root/docker-compose.yml :
以有service1和service2镜像的服务器为manager,其它机器为worker node节点,具体的搭建过程在先前文章中讲过了,可以参考 Docker Swarm介绍及使用入门 - (jianshu.com)
然后,我们就可以开始使用stack进行集群部署了。
创建完成后,我们可以通过如下命令查看stack及服务的信息:
Docker Compose介绍及使用入门 - (jianshu.com)
Docker Swarm介绍及使用入门 - (jianshu.com)
docker stack deploy | Docker Documentation
Docker常用命令大全 - (jianshu.com)
docker-stack一键编排lnmp - 知乎 (hu.com)
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。