前言:

  最近学习了Docker相关技术点,国内关于Docker的资料大多是基于Linux系统的,但是我对Linux又不熟(实际上没用过,掩面哭笑.Jpg)。

好在在Win10下也是支持Docker的,而且是支持Linux和Windows两种容器。

  在Win10下运行容器和在Linux下是有一些区别的,很多命令都不一样、容器网络也不一样,刚开始我就不明白这点,搭建应用总是错误不断,

网上相关Win10下的容器的资料有很少,特别是容器网络这段,坑不是一般少。学习的过程是曲折的。

  废话少说,直奔主题吧,

一、Win10下安装Docker

1、win10以下的那些Docker大家还是别去看了,个人觉得浪费时间;win10下的Docker是Docker for windows,点击这里下载:戳这里

2、下载完成后安装,一直Next就行了,最后在桌面看到快捷方式

  

3、双击快捷方式启动docker,第一次启动需要注册登录,没有账户的先去官网注册:戳这里

4、注册完成后输入账户就可以成功启动docker了,启动后可以看到小鲸鱼

  

  

5、运行PowerShell验证,输入docker info

  

二、Web应用

1、新建asp.net core测试项目

  

2、修改Controllers以及View

         public IActionResult Index()
{
ViewData["Message"] = "Hello World";
return View();
}

3、修改View

 @{
ViewData["Title"] = "Home Page";
}
<div style=" font-size:24px; font-weight:bold; text-align:center">
@ViewData["Message"]
</div>

4、新建Dockerfile

 FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /app # copy csproj and restore as distinct layers
COPY *.sln .
COPY WebApp-HelloWorld/*.csproj ./WebApp-HelloWorld/
RUN dotnet restore # copy everything else and build app
COPY WebApp-HelloWorld/. ./WebApp-HelloWorld/
WORKDIR /app/WebApp-HelloWorld
RUN dotnet publish -c Release -o out FROM microsoft/dotnet:2.1-aspnetcore-runtime AS runtime
WORKDIR /app
COPY --from=build /app/WebApp-HelloWorld/out ./
ENTRYPOINT ["dotnet", "WebApp-HelloWorld.dll"]

三、部署在Docker容器中

1、进入demo路径

 cd X:\Users\漂亮的猫\Desktop\WebApp-HelloWorld

2、生成镜像

 docker build -t helloworld .

3、启动镜像,将本地8000端口映射到容器80端口

 docker run --name helloworld -p 8000:80 helloworld

4、访问localhost:8000验证

OK,这就完成了,

emmmmm,好像有点简单,,

那就稍微深入一点,再加一个数据库容器,从数据库端返回数据

四、Web端修改

1、引用Dapper、MySql.Data

 using Dapper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
using MySql.Data.MySqlClient; namespace WebApp_HelloWorld.Controllers
{
public class DBService
{
protected IDbConnection conn; public DBService()
{
conn = new MySqlConnection("server=198.198.198.181;User Id=root;password=mima2100;Database=mysql-db");
} public async Task<T> Single<T>(string sql, object paramPairs = null)
{
return await conn.QuerySingleOrDefaultAsync<T>(sql, paramPairs);
} public async Task<int> Count(string sql, object paramPairs = null)
{
return await conn.QuerySingleOrDefaultAsync<int>(sql, paramPairs);
}
}
}

2、修改HomeController

         public IActionResult Index()
{
var dbService = new DBService();
var tb = dbService.Single<Tb>("select * from Tb limit 1").Result; ViewData["Message"] = string.Format("Idx:{0},Name:{1}", tb.Idx, tb.Name);
//ViewData["Message"] = "Hello World"; return View();
}

3、Tb

     public class Tb
{
public int Idx { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
}

五、容器端修改

1、拉取MySql容器

 docker pull mysql

2、启动容器

 docker run --name mysql001 -e MYSQL_ROOT_PASSWORD=mima2100 -p 3306:3306 -d mysql

3、链接Mysql,Navicat工具,创建数据

4、重新发布web应用

 docker stop 5b41
docker rm 5b41
docker build -t helloworld .
docker run --name helloworld -p 8000:80 helloworld

5、重新验证

OK,完成了Docker从入门到放弃的第一步,哈

出处:https://www.cnblogs.com/lanxiaoke/p/10432631.html

Win10上的Docker应用:Hello World的更多相关文章

  1. Win10上运行Docker

    1. 前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. Docker发布Mac和Windows 的目标非常简单——开发者可以更加简单方便地在研发机器上使用D ...

  2. win10上修改docker的镜像文件存储位置

    记住:修改的是docker从服务器上拉下来的镜像文件存储位置(本地),是不是镜像源地址(服务器) 首先 win10下的docker有可视化操作界面和命令行操作,下载了docker-ce.exe双击后就 ...

  3. Docker系列之(四):Win10上运行Docker

    1. 前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 2. 安装准备 需要的条件为: 64bit Windows 10,开启Hyper-V 2.1 下载D ...

  4. win10上安装Docker

    方法1:具体我没有试过,不知道win10下可以么.http://blog.csdn.net/zistxym/article/details/42918339 方法2: 先安装VirtualBox(下载 ...

  5. Win10上的Docker应用:Kubernetes(容器集群)

    阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) Docker应用:Kubernetes(容器集群) 前言: 终于出第三篇了,上个月就已 ...

  6. win10上的docker怎么设置开机不要自动启动 [问题点数:20分,结帖人xyq1986]

    次win开机都自动启动docker,感觉很耗资源,docker只是有时开发时需要用到,在docker的setting上的Start Docker Desktop when you log in取消了也 ...

  7. Win10上的Docker应用:Docker-compose(容器编排)

    阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...

  8. Win10上部署Apollo配置中心

    基于Docker在Win10上部署Apollo配置中心 https://www.jianshu.com/p/a1215056ce75 http://nobodyiam.com/2016/07/09/i ...

  9. win10专业版安装docker实战

    在win10专业版上安装docker 一,下载Docker for Windows Installer.exe 二,在程序面板---程序----程序和功能中找到启动或关闭windows功能,将hype ...

随机推荐

  1. 《Linux就该这么学》培训笔记_ch15_使用Postfix与Dovecot部署邮件系统

    <Linux就该这么学>培训笔记_ch15_使用Postfix与Dovecot部署邮件系统 文章最后会post上书本的笔记照片. 文章主要内容: 电子邮件系统 配置Postfix服务程序 ...

  2. 《Linux就该这么学》培训笔记_ch18_使用MariaDB数据库管理系统

    <Linux就该这么学>培训笔记_ch18_使用MariaDB数据库管理系统 文章最后会post上书本的笔记照片. 文章主要内容: 初始化MariaDB服务 管理用户以及授权 创建数据库与 ...

  3. 竟然重新用回Eclipse,得重新熟悉那些快捷键了!

    自动补全快捷键:补全后半部分,Alt + /:不全等号及等号前半部分(就是返回类型),Ctrl + 1: 未完待续~

  4. AntDesign vue学习笔记(五)导航菜单动态加载

    一般的后台系统都有一个树形导航菜单,具体实现如下,主要参考https://my.oschina.net/u/4131669/blog/3048416 "menuList": [ { ...

  5. 第十五节:Asp.Net Core中的各种过滤器(授权、资源、操作、结果、异常)

    一. 简介 1. 说明 提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权.响应缓存(对请求管道进行短路,以便返回缓存的响应). 防盗链.本地化国际化等,过滤器用于横向处理业务 ...

  6. Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自签名证书产生和使用

    到现在,我们已经完成了POS平台和前端的网络集成.不过,还是那句话:平台系统的网络安全是至关重要的.前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚. ...

  7. 【转载】ZYNQ Cache问题的解决方法

    Zynq Cache问题的解决方法 - Kevin_HeYongyuan - 博客园https://www.cnblogs.com/kevin-heyongyuan/articles/7738552. ...

  8. .NET CORE 中的缓存使用

    Net Framewoke的缓存 1.1 System.Web.Caching System.Web.Caching应该是我们最熟悉的缓存类库了,做ASP.NET开发时用到缓存基本都是使用的这个缓存组 ...

  9. 100道MySQL常见面试题总结

    原文链接:https://juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐 ...

  10. flask异常处理:abort、errorhandler、app_errorhandler,封装全局异常处理

    目录 1. abort() 1.1 使用方式一:传递一个错误码 1.2 使用方式二:传递一个json格式字符串 1.3 使用方式三:传递一个响应体 2. errorhandler 2.1 简单使用: ...