1.本文档以eShopOnContainers.sevices.identity为描述对象,并包含docker for windows的部分配置流程。

2.前置环境:win10操作系统。安装VS2017、NODEJS(下载LTS版本)、docker、hyper-v、sql2012。

3.VS2017编译Identity.Api。部分Nuget可能需要更新依次更新。注:部分包提示版本低,我的做法是更新为最新的。

4.VS2017选择发布Identity.Api.

5.运行docker。如果在win10下,安装docker for windows。同时必须安装NODEJS,并开启Hyper-v。当运行docker时会在hyper-v里生成一个虚拟机。

6.下载kitematic,解压到docker安装目录 例如:C:\Program Files\Docker ,并以kitematic为文件夹名保存。

7.下载core的运行环境镜像。打开kitematic,搜索aspnetcore,并选择create。注意此时是连接的国外服务器,不过由于文件不大所以可以不需要使用国内镜像加速器。

8.修改docker的虚拟机网络连接。注:此步骤是为了在测试环境下容器里程序访问宿主机的数据库,生产环境需要其他方法,比如直接使用linux服务器。修改网络连接为“连接外网”,连接外网是提前设置好的,此处原本是DockrNAT。

9.打开cmd或者powershell。powershell可以通过kitematic的左下角打开。

10.创建Identity.api的容器。

  • 在powershell里cd到identity.api的发布根目录。注:如果是根目录是需要修改Dockerfile文件的否则,会build时copy不成功。
  • 修改Dockerfile。注意要么是在发布之前修改项目里的,发布之后就是修改发布的文件夹里的。。不论原本是写的什么,此处改成如图所示。
  • 修改数据库链接。打开appsettings.json。修改连接字符串,我本机的IP是192.168.1.19所以此处改成这个,如果hyper-v里不修改连接方式,则死活不能连接数据库,其他方式我没试出来。有更好方法的大家可以提出来。
  • 在powershell里,运行 docker build -t identity:01 .   具体语法参考docker的命令,注意最后有个” .”。
  • 运行docker run -p 8888:80 --name identity -d identity:01  端口部分我没有改,直接使用的参考文档里的写法,在VS2017里运行identity.api时默认端口是5105,此处也可以把8888改成5105.此时会看到kitematic里有一个identity被创建,等待其加载完成即可访问。

11.数据库会在第一次运行时自动创建。

12.参考:http://www.cnblogs.com/inday/p/identity-service-eshoponcontainers.html。

13.特别感谢参考文档的作者James.Ying

最新文章

  1. 页面嵌入dom与被嵌入iframe的攻防
  2. javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
  3. C# 对象 序列化 XML
  4. C# 开发XML Web Service与Java开发WebService
  5. php中定义网站根目录的常用方法
  6. 【BZOJ】【2938】【POI2000】病毒
  7. MVC自学系列之二(MVC控制器-Controllers)
  8. 腾讯QQ、新浪微博等知名社交网络图标素材
  9. 集成对象和 JSON
  10. hdu4296 贪心
  11. oracle设备
  12. 如果不能显示真正的考验个别车型toast问题解决
  13. Jquery 图片轮播实现原理总结
  14. WEB前端资源集(一)
  15. dotnet core部署方式两则:CLI、IIS
  16. 算法面试题-leetcode学习之旅(二)
  17. jQuery应用实例1:定时弹出图片
  18. TerminateProcess的使用问题
  19. 【添加tomcat里lib下的jar包】eclipse中The project cannot be built until build path errors are resolved
  20. 20155204 王昊《网络对抗技术》EXP4

热门文章

  1. 如何清理Windows缩略图缓存?
  2. Android 回调的理解,觉得写得好就转过来。。。收藏一下
  3. mongorc.js文件
  4. Maven Dependencies missing jar 解决
  5. <jsp:include>和<%@include file=""%>的区别(简单了解)
  6. 旧文备份:硬盘MBR引导记录损坏的一种修复方法
  7. py faster rcnn的lib编译出错问题
  8. 将某页面中ajax中获取到的信息放置到sessionStorage中保存,并在其他页面调用这些数据。
  9. apache开启.htaccess及使用方法
  10. 话说"登录页面"怎么测试