eShopOnContainers 看微服务 ②:配置 启动
一、什么是docker
Docker 是一个开源项目,通过把应用程序打包为可移植的、自给自足的容器(可以运行在云端或本地)的方式,实现应用程序的自动化部署。
使用 Docker 的时候,需要创建一个应用或服务,然后把它和它的依赖打包到一个容器镜像中。镜像是应用或服务,以及它的配置和依赖的静态表现形式。要运行应用和服务,这个应用的镜像会被实例化,来创建一个容器,这个容器将会运行在 Docker 宿主机上。Docker公司 维护了一个公用的注册表叫 Docker Hub,其他提供商也为不同的镜像集合提供了各种注册表。此外,企业可以在本地创建一个私有的 注册表,供企业内部的 Docker 镜像来使用。
这里出现几个名词。
容器镜像:一个包含了创建容器所需的所有依赖和信息的“包”。
容器:Docker 镜像的一个实例。
注册表(Registry):为仓库提供访问服务。一个注册表通常包含来自于多个团队的仓库。企业通常会创建私有的 注册表来存储和管理他们创建的镜像。
Docker Hub:一个公用的 注册表。
需要注意:Windows 镜像只能运行在Windows 主机上,Linux 镜像只能运行在 Linux 主机上。
二、环境设置
安装docker我们就不说了,网上很多介绍。我们从配置开始
1、 给Docker分配CPU和内存
对硬件还是有些要求的。
2 、设置共享驱动器
这里C盘是必须的,另外E盘是我存放eshop源代码的盘,自然也要共享。
3、设置镜像加速
我们使用DaoCloud来做镜像加速。官网https://www.daocloud.io
加速地址 http://f1361db2.m.daocloud.io
加到"registry-mirrors"的数组里,点击 Apply 。
4、防火墙设置
在本地防火墙中打开端口,以便可以通过STS(安全令牌服务容器,IP:10.0.75.1 )进行身份验证,该IP为Docker默认设置。Xamarin app或SPA app等客户端也需要打开相应的防火墙端口。
您可以在本地防火墙中手动创建规则,也可以通过执行解决方案的cli-windows目录中提供的add-firewall-rules-for-sts-auth-thru-docker.ps1脚本来创建该规则。
您需要通过在防火墙中创建一个IN-BOUND RULE来打开解决方案使用的端口5100到5110,如下面的屏幕截图所示(对于Windows)。
注意:通过PowerShell脚本设置防火墙规则时可能会因为Windows PowerShell® 默认执行策略未设置而报错。具体参考:https://go.microsoft.com/fwlink/?LinkID=135170。 可以通过PowerShell执行"Set-ExecutionPolicy UNRESTRICTED -Scope CurrentUser"命令临时允许脚本运行,运行完设置防火墙规则脚本后再通过“Set-ExecutionPolicy Undefined -Scope CurrentUser”还原默认设置。 要查看当前执行策略设置可通过命令:“ Get-ExecutionPolicy -List”。
三、构建并部署到本机Docker主机
1、打开并运行eShopOnContainers解决方案
如果只进行服务端调试,打开“eShopOnContainers-ServicesAndWebApps.sln”解决方案,如果还需要调试移动App,打开“eShopOnContainers.sln”解决方案。
将“docker-compose”设置为默认启动项目,按F5或者点运行。
注意:由于第一次运行Docker需从互联网下载"SQL for Linux , Redis , ASPNET"等Docker镜像,视网速可能需要等10分钟左右。
2、查看已经构建好的镜像。
注:你可能会看到很多为 <none>
的镜像,这些是临时镜像,可以通过命令 docker rmi $(docker images-f"dangling=true"-q)
删除。
3、测试所有应用程序和微服务
完成容器部署,测试访问以下服务。
容器正常部署运行后,可通过以下地址访问任一应用或服务:
MVC网页: http://localhost:5100
单页应用网页: http://localhost:5104 (需要单独安装依赖并编译才能正常运行)
商品目录微服务: http://localhost:5101 (不需要认证)
订单微服务: http://localhost:5102 (需要认证)
购物车微服务: http://localhost:5103 (需要认证)
认证微服务: http://localhost:5105
订单数据库(SQL Server 连接字符串): Server=tcp:localhost,5432;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;
商品目录数据库 (SQL Server 连接字符串): Server=tcp:localhost,5434;Database=CatalogDB;User Id=sa;Password=Pass@word
认证数据库 (SQL Server 连接字符串): Server=localhost,5433;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word
购物车数据 (Redis): 监听 localhost:6379
eShopOnContainers 看微服务 ②:配置 启动的更多相关文章
- eShopOnContainers 看微服务⑤:消息通信
1.消息通信 传统的单体应用,组件间的调用都是使用代码级的方法函数.比如用户登录自动签到,增加积分.我们可以在登录函数调用积分模块的某个函数,为了解耦我们使用以来注入并放弃new Class()这种方 ...
- eShopOnContainers 看微服务④:Catalog Service
服务简介 Catalog service(目录服务)维护着所有产品信息,包括库存.价格.所以该微服务的核心业务为: 产品信息的维护 库存的更新 价格的维护 架构模式 先看代码结构(下图). 主要依赖: ...
- eShopOnContainers 看微服务③:Identity Service
引言 通常,服务所公开的资源和 API 必须仅限受信任的特定用户和客户端访问.那进行 API 级别信任决策的第一步就是身份认证——确定用户身份是否可靠. 在微服务场景中,身份认证通常统一处理.一般有两 ...
- [转]eShopOnContainers 看微服务 ①:总体概览
本文转自:https://www.cnblogs.com/tianyamoon/p/10081177.html 一.简介 eShopOnContainers是一个简化版的基于.NET Core和Doc ...
- eShopOnContainers 看微服务 ①:总体概览
一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用. 该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用. 其 ...
- [Abp vNext微服务实践] - 启动流程
前几篇分别介绍了abp vNext微服务框架和微服务CI/CD环境搭建,本篇开始介绍vNext微服务框架的开发环境搭建. 环境准备 官方介绍的系统架构图如下: 上图中身份服务和网关服务已经集成在系统中 ...
- 9.Spring Cloud Config统一管理微服务配置
Spring Cloud Config统一管理微服务配置 9.1. 为什么要统一管理微服务配置 9.2. Spring Cloud Config简介 Spring Cloud Config为分布式系统 ...
- springcloud(十二)-springcloud-config统一管理微服务配置
1.为什么要统一管理微服务配置 对于传统的单体应用,常使用配置文件管理所有配置.例如一个SpringBoot开发的单体应用,可将配置内容放在application.yml文件中.如果需要切换环境,可设 ...
- Hadoop 历史服务配置启动查看
历史服务配置启动查看 1)配置mapred-site.xml <property> <name>mapreduce.jobhistory.address</name> ...
随机推荐
- Forth词典条目结构
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java框架部分---面试题
说说Spring? Spring的核心是控制反转.依赖注入,Aop(面向切面)相当于把每个bean与bean之间的关系交给第 三方容器进行管理. 说SpringIOC.SpringAOP? Sprin ...
- VSTO:使用C#开发Excel、Word【16】
使用工作表对象Worksheet对象表示Excel工作簿中的工作表.Worksheet有一个Name属性,返回工作表的名称(例如“Sheet1”). 工作表管理Worksheet对象具有一个Index ...
- navicat 定时备份
1.点击备份-->新建备份 2.对象选择:可以选择要备份的表也可以不选,默认全部选择:之后点击保存:输入文件名即可:注意弹框不会消失,这是已经生成了备份任务 3.点击计划-->新建批量计划 ...
- java特殊抽象类-接口
- Ubuntu 17.10 安装Caffe(cpu)并配置Matlab接口
(1)安装依赖: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-ser ...
- 11--Python入门--面向对象
面向对象是Python的特点.面向对象主要通过类class的定义来实现.类class是用来描述具有相同属性和方法的对象的集合.类定义了该集合中的每个对象的共有属性和方法可以将类理解为一个模块,模块中包 ...
- linux ar命令参数及用法详解--linux建立、修改或抽取备存文件命
功能说明:建立或修改备存文件,或是从备存文件中抽取文件. 语 法:ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>] ...
- 有人WIFI ble101配置
新买来的模块,默认为slave模式,波特率57600,8位数据位,无检验位,1位停止位. 发送+++a,进入命令模式. 需要加回车符 1.设置模块名称 AT+NAME=BT_Shining 2.设置发 ...
- JavaScript 基础篇1
JavaScript引用问题 1:<script>标签引用嵌入html页面中,在外部引用中是JavaScript文件时必须用src属性设置相应的文件的URL.2:在不使用defer和asy ...