赞
踩
本文重点关注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
项目地址:https://gitee.com/00fly/springcloud-swarm/tree/master/all-in-one
源码点击直达
项目结构如下:
注册中心、movie服务调用user服务。
yum install maven -y
安装完成后,修改成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>
示例服务器目录为:/work/all-in-one
sh rebuild.sh
出现如下输出,说明成功。
输入docker images查看镜像
Docker Compose 只是一个在单个服务器上创建多个容器的工具,仅适合开发、测试
进入 /work/all-in-one/docker/compose,执行
sh restart.sh
输出如下信息,说明启动成功
输入 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 init 切换到swarm模式
Docker Swarm 可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。
进入 /work/all-in-one/docker/stack,依次执行
#网络创建首次执行就行
sh 1st-network.sh
sh 2nd-base.sh
sh 3rd-web.sh
具体的访问路径不再发出来,可以通过下面命令查看
docker service ls
如果服务器配置比较低,可能无法启动stack服务,可以试着删除 base-eureka.yml、core-web.yml里面的resources节点内容,再运行上面的命令查看服务信息!
归纳一下docker 部署的实践步骤:
个人认为重点是:
1. Dockerfile文件文件的编写
2. docker-compose.yml自定义网络的设置,固定服务在自定义网络的ip有诸多好处,想想redis缓存服务器、消息队列服务器。
3. extends service的用处,对比docker-compose-common.yml 和docker-compose.yml
4. 跨主机overlay网络的应用
有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!
-over-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。