接触 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的更多相关文章

  1. Windows下docker的安装,将ASP.NET Core程序部署在docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...

  2. Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)

    1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 ...

  3. 一个.NET Core下的开源插件框架

    插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可实现功能解耦,对于并行开发.项目部署.功能定制等都有比较大的优势. 在.NET Core下,一般我 ...

  4. Docker下制作一个容器镜像

    操作过程描述: (1)先基于centos的镜像启动一个centos容器 (2)在这个容器中安装nginx (3)然后把这个已经安装了nginx的容器制作成一个docker的镜像 操作:docker c ...

  5. .NET Core下使用gRpc公开服务(SSL/TLS)

    一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...

  6. 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 创 ...

  7. Gitlab CI 自动部署 asp.net core web api 到Docker容器

    为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...

  8. ASP.NET Core 2.0 in Docker on Windows Container

    安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...

  9. 给Ocelot做一个Docker 镜像

    写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用.目前在各个云端中,基本上都提供了Api ...

随机推荐

  1. 移动web开发适配方案之Rem

    移动端为什么要做适配 移动端相对PC端来说大部分浏览器内核都是基于Webkit的,所以大部分都支持CSS3的最新语法.但是由于手机的屏幕尺寸和分辨率都不太一样(尤其是安卓),所以不得不对不同分辨率的手 ...

  2. StringUtils工具类的isBlank()方法使用说明

  3. MySQL多表关联查询与存储过程

    --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积 ...

  4. hdu 3699 10 福州 现场 J - A hard Aoshu Problem 暴力 难度:0

    Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...

  5. grub2 详解

    grub2详解(翻译和整理官方手册)   分类: Linux 基础篇,Linux 杂项   本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/archive ...

  6. 06-jenkins的账号相关的问题

    飞测说:最近几天,在团队分享jenkins后,大家都十分感兴趣,各自下载安装和练习,然而jenkins2.3安装默认有权限设置,这块好多人遇到了问题,现在统一就账号登录的问题一起看看,踩过的坑,希望对 ...

  7. HDU 4068

    http://acm.hdu.edu.cn/showproblem.php?pid=4068 暴力枚举两个全排列,犯了若干错误,以此为鉴 #include <iostream> #incl ...

  8. alsa-lib、alsa-utils移植

    /************************************************************************** * alsa-lib.alsa-utils移植 ...

  9. SQL Server2008 R2开启远程连接总结

    ============================== SQL Server2008 R2开启远程连接(最全总结) ============================== 安装过程:适用W ...

  10. 复利计算5.0(改成Java版本)与 单元测试

    //由于C语言版本不方便单元测试,所以改成了java版本,部分代码如下:import java.util.Scanner; public class FuLi{ public static void ...