前言:

  最近学习了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

最新文章

  1. guardian keytab生成不了
  2. 做小图标还用sprite图?你out了!史上最简单易懂iconfont使用教程
  3. 【经典】C++&amp;RPG对战游戏
  4. 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
  5. Spring 管理数据源
  6. 网站购物,使用pickle
  7. tomcat6~7~8用户设置及一个独立服务器上跑多个tomcat配置JVM设置优化亲测
  8. Linux进程管理—信号、定时器
  9. Javascript中布尔运算符的高级应用
  10. 项目管理Project
  11. 推荐一本书:清华出版的《Modbus软件开发实战指南》
  12. WeQuant交易策略—KDJ
  13. RabbitMQ之比较好的资料
  14. VUE-CLI Vue安装及开发,npm run build无法查看项目的问题
  15. 【工具大道】ssh登录Linux服务器,并显示图形化界面
  16. Percona xtrabackup
  17. 配置jmeter环境变量及运行命令解释
  18. idea debug info can be unavailable. Please close other application using ADB: Monitor, DDMS, Eclipse
  19. 【Python爬虫实战】微信爬虫
  20. 呵呵sql

热门文章

  1. 【操作系统之十二】分支预测、CPU亲和性(affinity)
  2. 59 网络编程(一)——端口与InetSocketAddress
  3. 一段代码看 Java 引用类型
  4. 阿里云RDS数据库sql server 导入数据并添加作业小结
  5. C#生成唯一不重复订单号帮助类
  6. j.u.c: Java并发包的5大块
  7. Grafana官方和社区提供的dashboard
  8. spring cloud gateway 深入了解 - Predicate
  9. 实现SpringCloud Config 客户端自动刷新
  10. 通过Nginx为网站配置二级域名