1.新建一个 ASP.NET Core 2.1 项目
然后运行一下项目,确保我们刚刚建立的项目可以正常运行。
2.编写 Dockerfile
新建一个文本文件,命名为 Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]
这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime
如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtime-alpine
,这镜像使用了alpine
一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。
需要设置Dockerfile的如下属性,保证其能复制到发布目录:
3.构建Docker镜像
我们将镜像命名为 :aspnetcoredocker
进入到发布文件目录,执行命令便可打包镜像:
docker build -t aspnetcoredocker .
我们可以编写 发布+构建 的脚本。
Windows:
文件名:build.bat
@echo off echo "Windows Docker build" cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo "publish success" docker build -t aspnetcoredocker .
文件名:Linux:
build.sh
#!/bin/bash echo Linux Docker build cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo publish success docker build -t aspnetcoredocker .
文件夹结构如下图:
执行构建:
./build.sh
构建成功后可以通过 docker images
命令查询到我们构建的镜像:
若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,请通过vim/vi编辑sh脚本,按:建,输入 set ff=unix
,然后回车、wq保存即可
4.运行镜像
通过命令运行
docker run --name=aspnetcoredocker -p 7777:80 -d aspnetcoredocker
--name
:指定容器名称
-p
:指定容器端口
-d
:指定容器 后台运行
出现一长串字符串,便是表示运行成功:
我们也可以通过 docker ps
命令,查询我们正在运行的容器:
我们还可以通过 docker logs <容器名称或者id>来查看启动日志:
5.验证访问
我们可以通过 curl
命令来直接访问我们容器启动的asp.net core 网站:
或者直接通过浏览器访问:
至此,我们通过Docker运行asp.net core 2.1应用程序就结束了。
6.资料
本文所用代码:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持站长技术。
公司要做一个活动页面,在其过程中发现所有的接口,ajax请求跨域。这里对跨域做...
前几日正好重温下GD库,来玩一下生成带有干扰素的验证码。 生成字母数字的图片验...
目录 在本篇文章中你将会学习并了解常用的文件处理任务,例如读取文件的一行文本...
【51CTO.com快译】Mint和Ubuntu是初学者当中最受欢迎的两种Linux发行版。它们之...
根据邮件列表显示,Linux 或将移除传统的 IDE 驱动支持。 如果该提议按计划进行...
今天忽然想着复习一下富文本编辑器的制作原理。于是二话不说将手把手地做了起来...
本文是基于 C语言技术网 大佬的学习总结主要对linux 下基于TCP协议的客户端/服务...
前言 从毕业开始学习windows UI编程,工作中总是和一些API打交道,但是从没有做...
前言 在开始本文之前,对GraphQL不熟悉的朋友们,可以看下下面这篇文章: 前文:...
系列文章目录 文章目录 系列文章目录 前言 一、数组中数字出现的次数 1.题目描述...