一、什么是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 看微服务 ②:配置 启动的更多相关文章

  1. eShopOnContainers 看微服务⑤:消息通信

    1.消息通信 传统的单体应用,组件间的调用都是使用代码级的方法函数.比如用户登录自动签到,增加积分.我们可以在登录函数调用积分模块的某个函数,为了解耦我们使用以来注入并放弃new Class()这种方 ...

  2. eShopOnContainers 看微服务④:Catalog Service

    服务简介 Catalog service(目录服务)维护着所有产品信息,包括库存.价格.所以该微服务的核心业务为: 产品信息的维护 库存的更新 价格的维护 架构模式 先看代码结构(下图). 主要依赖: ...

  3. eShopOnContainers 看微服务③:Identity Service

    引言 通常,服务所公开的资源和 API 必须仅限受信任的特定用户和客户端访问.那进行 API 级别信任决策的第一步就是身份认证——确定用户身份是否可靠. 在微服务场景中,身份认证通常统一处理.一般有两 ...

  4. [转]eShopOnContainers 看微服务 ①:总体概览

    本文转自:https://www.cnblogs.com/tianyamoon/p/10081177.html 一.简介 eShopOnContainers是一个简化版的基于.NET Core和Doc ...

  5. eShopOnContainers 看微服务 ①:总体概览

    一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用. 该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用. 其 ...

  6. [Abp vNext微服务实践] - 启动流程

    前几篇分别介绍了abp vNext微服务框架和微服务CI/CD环境搭建,本篇开始介绍vNext微服务框架的开发环境搭建. 环境准备 官方介绍的系统架构图如下: 上图中身份服务和网关服务已经集成在系统中 ...

  7. 9.Spring Cloud Config统一管理微服务配置

    Spring Cloud Config统一管理微服务配置 9.1. 为什么要统一管理微服务配置 9.2. Spring Cloud Config简介 Spring Cloud Config为分布式系统 ...

  8. springcloud(十二)-springcloud-config统一管理微服务配置

    1.为什么要统一管理微服务配置 对于传统的单体应用,常使用配置文件管理所有配置.例如一个SpringBoot开发的单体应用,可将配置内容放在application.yml文件中.如果需要切换环境,可设 ...

  9. Hadoop 历史服务配置启动查看

    历史服务配置启动查看 1)配置mapred-site.xml <property> <name>mapreduce.jobhistory.address</name> ...

随机推荐

  1. Eureka的使用

    一.项目配置文件:application.yml #------ eureka配置,默认不开启,如需使用rest负载模式需开启 start ------------- eureka: instance ...

  2. Linux中修改环境变量及生效方法(永久、临时)环境变量查看

    参考link:https://blog.csdn.net/u011630575/article/details/49839893 在项目中有一次帮忙组里搭环境时遇见了这部分的相关操作,记录一下.

  3. scrapy框架初级

    scrapy入门教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html 一.安装 python模块网站,应用文件放置在s ...

  4. Is It Always a Good Idea to Reach Outside Your Comfort Zone?

    Learning to stretch outside your comfort zone is critical for learning and growing, advancing in you ...

  5. JAVA8之Lambda表达式与方法引用表达式

    一.Lambda表达式 基本语法: lambdaParameters->lambdaBody lambdaParameters传递参数,lambdaBody用于编写逻辑,lambda表达式会生成 ...

  6. wpf-xaml-命名空间

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns 为window控件的属性 代表声明引用 如同C ...

  7. 莫烦tensorflow(9)-Save&Restore

    import tensorflow as tfimport numpy as np ##save to file#rember to define the same dtype and shape w ...

  8. Linux 查看端口被什么程序占用

    lsof -i:8899 输出: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 38889 root 329u IPv6 5883661 ...

  9. python:递归函数(汉诺塔)

    #hanoi.py def hanoi(n,x,y,z): if n==1: print(x,"-->",z) else: hanoi(n-1,x,z,y) print(x, ...

  10. psql备份和恢复(ubuntu)

    备份 sudo pg_dump -U  username  -f  filename.sql  dbname 恢复 psql -U username -f filename.sql dbname -- ...