当前位置:   article > 正文

Docker 微服务部署入门到实践_docker swarm 部署微服务

docker swarm 部署微服务


前言

本文重点关注docker相关实践,不再详细阐述理论知识

一、docker安装

以centos7系统为例说明,为什么是centos7,原因是centos8官方已经不维护了,yum源已失效,安装组件不方便

#2个yum源选用
#官方yum源,适合国外主机
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#设置yum源,国内源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker
sudo yum -y install docker-ce

systemctl enable docker
systemctl start docker

# 安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -v
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

二、创建微服务项目

项目地址:https://gitee.com/00fly/springcloud-swarm/tree/master/all-in-one
源码点击直达
项目结构如下:
注册中心、movie服务调用user服务。
项目结构

三、运行前准备

1. 服务器安装maven

yum install maven -y
  • 1

安装完成后,修改成aliyun仓库,文件地址通过下面命令查看
在这里插入图片描述
进入/usr/share/maven/conf/settings.xml 在mirrors节点添加

		<mirror>
			<id>mirror</id>
			<mirrorOf>*</mirrorOf>
			<name>mirror</name>
			<url>https://maven.aliyun.com/nexus/content/groups/public</url>
		</mirror>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.上传源码到服务器

示例服务器目录为:/work/all-in-one
在这里插入图片描述

3. 编译源码并打包镜像

sh rebuild.sh
  • 1

出现如下输出,说明成功。
在这里插入图片描述
输入docker images查看镜像
在这里插入图片描述

四、Docker-compose运行微服务

Docker Compose 只是一个在单个服务器上创建多个容器的工具,仅适合开发、测试
进入 /work/all-in-one/docker/compose,执行

sh restart.sh
  • 1

输出如下信息,说明启动成功
在这里插入图片描述
输入 docker ps 查看服务信息
在这里插入图片描述
访问 http://124.221.35.36:8761 或者 http://124.221.35.36:8762
发现服务启动正常
在这里插入图片描述
依次访问user服务 http://124.221.35.36:8000/2、movie服务 http://124.221.35.36:8010/user/2
服务接口正常!

五、Docker swarm运行微服务

运行docker swarm前需执行 docker swarm init 切换到swarm模式
Docker Swarm 可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。
进入 /work/all-in-one/docker/stack,依次执行

#网络创建首次执行就行
sh 1st-network.sh

sh 2nd-base.sh 
sh 3rd-web.sh
  • 1
  • 2
  • 3
  • 4
  • 5

具体的访问路径不再发出来,可以通过下面命令查看

docker service ls
  • 1

如果服务器配置比较低,可能无法启动stack服务,可以试着删除 base-eureka.yml、core-web.yml里面的resources节点内容,再运行上面的命令查看服务信息!

总结

归纳一下docker 部署的实践步骤:

  1. pom引入docker-maven-plugin插件,配置镜像参数
  2. 编写Dockerfile文件定义打包步骤
  3. 执行 sh rebuid 打包镜像
  4. 进入docker/compose目录执行 sh restart.sh|stop.sh 重启、停止容器。
  5. 进入docker/stack目录执行1/2/3 创建网络(初始执行1次)、启动基础服务、web服务等。

个人认为重点是:
1. Dockerfile文件文件的编写
2. docker-compose.yml自定义网络的设置,固定服务在自定义网络的ip有诸多好处,想想redis缓存服务器、消息队列服务器。
3. extends service的用处,对比docker-compose-common.yml 和docker-compose.yml
4. 跨主机overlay网络的应用

有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/858374
推荐阅读
相关标签
  

闽ICP备14008679号