• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETCORE做的网站运行在docker实践

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行?

下面分两种方式来实践: 1、直接手动命今行,将本机目录映射进Docker,运行网站。2、制作 Image ,再启动 Docker 运行。

 

一、将本机目录映射进Docker,运行网站fil

      1. vs中建立ASP.NET CORE网站,类名为WebApplication3. (在创建时,可以勾选上 Docker 。好处是会自动生成 Dockerfile 文件,方便后面抄写命令。)

      2. 发布到 e:/app 下。(随便建的发布目录)

      3. 先在本地CMD命令行测试一下是否成功,cd e:\app, 再运行docnet WebApplication3.dll

     4. 浏览器输入http://localhost:5000 可以访问网站

     5. 退出命令行工具,开始进行docker镜像部署,前提是先装好docker,如果映射本地端口是80则记得先把IIS停了(如果你装了IIS的话)

     6. 在命令行上先安装 DotNetCore 运行环境:Docker pull microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803  和 Docker pull microsoft/dotnet:2.2-sdk-nanoserver-1803

         这两个命令行的具本内容,可以在工程自动生成的 Dockerfile 中找到。

         如果遇到错误:image operating system "windows" cannot be used on this platform

         请将 Docker 切换到windows 模式。

   

         7. 命令行CMD中输入docker命令 docker run -p 8001:80 -v e:/app:c:/wwwroot -w /wwwroot microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 dotnet WebApplication3.dll

           解释下上面的命令:运行docker容器,名字叫microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803,这是微软官方的asp.net core镜像,映射本地端口8001到容器内的80端口,把本地目录e:/app 映射为容器里的 C:/wwwroot 目录 , 把容器内的工作目录 设置为 /wwwroot,容器运行起来后再运行命令 dotnet /wwwroot/WebApplication3.dll

          请留意 -v 后面目录的写法。

          8.在浏览器中输入http://localhost:8001 应该就可以访问网站了,哪怕在命令行中按ctrl+c退出,但是实际上docker容器也是正在运行中,输入命令docker ps 可以看到正在运行的容器。

 

二、网站制作 Image ,再启动 Docker 运行

      1. 在 e:/app 目录下,创建 Dockerfile 文件

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803
COPY . .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]

 

      2. 在命令行中输入 “docker build -t web3 . ” 创建镜像文件

      3. 通过 docker images 可以查看到新建的 web3 镜像。

      4. 启动镜像中的网站  docker run --name myWeb -p 9001:80 -d web3

      其中 -d 是后台运行的意思。输出一串编码,表示已经运行了。

      

      5. 在浏览器中输入http://localhost:9001 应该就可以访问网站了。

      6. 常用调试命令  docker ps 列出当前正在运行的 container , 还有  docker logs <container-id> 查看程序运行的log信息。

       删除 container 和 删除 image  也常用到。

 

三、参考文章

     了解用于 Linux 和 Windows 容器的 Docker “容器主机”与“容器操作系统”

     Docker简单使用

      ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

     ASP.NET Core 2.1 使用Docker运行

     .net core build docker image


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap