.net core 下的一个docker hello world
接触 docker 有段时间了,发现docker这个东西,真是越用越爽。
那就从零开始跑一个 docker simple 。
方法一:
步骤一: dotnet new mvc --name myweb //创建一个.net core 的mvc 项目名称为myweb
步骤二:cd myweb //进入目录
步骤三: dotnet restore //还原项目
步骤四:dotnet publish -c release -o publish //发布项目到publish文件夹中去。
步骤五:touch Dockerfile//创建dockerfile 文件
步骤六: vim Dockerfile //编辑docker file
FROM microsoft/aspnetcore
WORKDIR /app //设置当前目录为 app
COPY /publish . // 将本地publish 文件夹中的文件 复制到当前目录(app)中
ENTRYPOINT ["dotnet","myweb.dll"]
步骤七: docker build -t webapp . //生成docker镜像 名称为webapp
步骤八:docker run -d -p 5000:80 --name webapp webapp //启动镜像,设置为后台运行,并且暴露本地5000端口 ,名称为webapp 用的镜像名称为webapp
方法二:
执行步骤1-2,省略掉步骤3-4,直接操作步骤5-8唯一的不同是Dockerfile不一样了。
FROM microsoft/aspnetcore-build as builder
WORKDIR /source
COPY *.csproj .
RUN dotnet restore
copy . .
run dotnet publish -c release -o /publish/
from microsoft/aspnetcore
workdir /app
copy --from=builder /publish .
ENTRYPOINT ["dotnet","test.dll"]
查看一下:
本地浏览器 localhost:5000查看:

总结:
方法一和方法二的不同就是: 方法一需要手动进行build和publish ,方法二是直接在docker中进行build 和publish省去了麻烦。
docker-compose
在该项目目录下创建文件docker-compose.yaml
编辑该文件
version : '3.3'
services :
web :
build : .
ports :
- 80 : 80
直接运行docker-compose up 自动构建镜像,并启动。
docker-compose 笔记
| 命令 | 解释 |
|---|---|
| build | --force-rm 删除构建过程中的临时容器。 |
| --no-cache 构建镜像过程中不使用 cache(这将加长构建过程)。 | |
| --pull 始终尝试通过 pull 来获取更新版本的镜像。 | |
| config | 验证 docker compose 语法检查 |
| down | 此命令将会停止 up 命令所启动的容器,并移除网络 |
| exec | 进入指定的的容器 和docker exec 用法差不多。 |
| images | 列出 Compose 文件中包含的镜像。 |
| kill | 通过发送 SIGKILL 信号来强制停止服务容器。 |
| logs | 容器运行状况的日志输出 和docker logs差不多。 |
| pause | 暂停一个容器 |
| port | 打印某个容器端口所映射的公共端口。 |
| ps | 列出项目中目前的所有容器。 |
| push | 推送服务依赖的镜像到 Docker 镜像仓库。 |
| restart | 重启项目中的服务。 |
| rm | 删除所有(停止状态的)服务容器 |
| run | 在指定服务上执行一个命令。 |
| scale | 指定容器的个数 |
| start | 启动已经存在的容器 |
| stop | 停止已经处于运行状态的容器,但不删除它 |
| top | 查看各个服务容器内运行的进程。 |
| up | -d 在后台运行服务容器。 |
| -no-color 不使用颜色来区分不同的服务的控制台输出。 | |
| --no-deps 不启动服务所链接的容器。 | |
| --force-recreate 强制重新创建容器,不能与 --no-recreate 同时使用 | |
| --no-recreate 如果容器已经存在了,则不重新创建,不能与 --force-recreate 同时使用。 | |
| --no-build 不自动构建缺失的服务镜像。 | |
| -t, --timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)。 |
.net core 下的一个docker hello world的更多相关文章
- Windows下docker的安装,将ASP.NET Core程序部署在docker中
参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...
- Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)
1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 ...
- 一个.NET Core下的开源插件框架
插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可实现功能解耦,对于并行开发.项目部署.功能定制等都有比较大的优势. 在.NET Core下,一般我 ...
- Docker下制作一个容器镜像
操作过程描述: (1)先基于centos的镜像启动一个centos容器 (2)在这个容器中安装nginx (3)然后把这个已经安装了nginx的容器制作成一个docker的镜像 操作:docker c ...
- .NET Core下使用gRpc公开服务(SSL/TLS)
一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...
- 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】
Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
- ASP.NET Core 2.0 in Docker on Windows Container
安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...
- 给Ocelot做一个Docker 镜像
写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用.目前在各个云端中,基本上都提供了Api ...
随机推荐
- 数据库连接池druid 监控台配置
这篇文章主要讲druid 监控台的配置及界面使用介绍. 业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和 ...
- java基础第5天
数组概述 数组是储存多个变量(元素)的东西(容器} 这多个变量的数据类型要一致 概念:数组是存储同一种数据类型多个元素的集合.也就是一个容器,这个容器有个名字,就是数组名. 数组就是在内存中开辟出一段 ...
- oracle创建触发器
create or replace trigger 触发器名字 触发时间 触发事件 after(before) insert or update or delete on 表名 for each r ...
- maven 笔记:maven Could not create the Java Virtual Machine
1.安装好maven,在cmd中运行mvn –v,报错:“maven Could not create the Java Virtual Machine” 2.分析:这是跟jvm有关,在cmd中运行 ...
- Swift 图片浏览器
class ViewController: UIViewController, UIScrollViewDelegate{ var scrollView: UIScrollView? var imag ...
- PyQt4 HardwareManager
# PyQt4 HardwareManager # 声明: # 本软件主要是由于朋友说想要一个产品缺陷记录软件,主要用于记录产品缺陷, # 通过产品序列号进行插入.查询,本来想用VC++ 6.0做,但 ...
- BZOJ4408: [Fjoi 2016]神秘数【主席树好题】
Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13}, 1 = 1 2 = 1+1 3 = 1+1+1 4 = 4 5 = ...
- CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑等
Mac OS的一些: 华文细黑:STHeiti Light [STXihei] 华文黑体:STHeiti 华文楷体:STKaiti 华文宋体:STSong 华文仿宋:STFangsong 俪黑 P ...
- 《DSP using MATLAB》Problem 2.19
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 【Beanstalkd】Beanstalkd消息队列的安装与使用
一.Beanstalkd是什么? Beanstalkd是一个高性能,轻量级的分布式内存队列 二.Beanstalkd特性 1.支持优先级(支持任务插队)2.延迟(实现定时任务)3.持久化(定时把内存中 ...