本文主要利用 Microsoft 提供的 Dockerfile 进行安装。

虽然Raspberry PI 3 CPU支持 armv8 指令集 ,但是在 docker info 还是识别为 “ armv7l”。所以安装镜像时一律选用 ARMv7 的镜像。

关于树莓派与 .NET Core 需要注意的地方

  1. .NET Core 2.0 支持 Arm32,提供运行时,但不提供SDK
  2. .NET Core 2.0 不支持 Pi Zero
  3. dotnet 社区对 PI 的使用指南 RaspberryPiInstructions

0.安装Docker

官方安装说明 :

Debian / Raspbian /Ubuntu

不在赘述。

1.准备 .NET Core Runtime 镜像

提供两种方法

  1. 前往Github 自行编译 Dockerfile

    build 命令如下

    docker build -t <name>/dotnet:2.0-runtime-stretch-arm32v7 .
  2. 使用 Docker Microsoft 官方的仓库(Repository)

    pull 命令如下

    docker pull microsoft/dotnet:2.0-runtime-stretch-arm32v7

提示:

  1. 以上生成的 Runtime 版本为 2.0.7 (2018/04/25)。
  2. 虽然官方说不支持提供SDK镜像,但笔者还是找到了"官方"的.NET Core 2.1-preview2镜像

pull 命令如下

docker pull microsoft/dotnet:2.1-sdk-stretch-arm32v7

2. 制作镜像

首先编译项目,其次制作Dockerfile

编译项目示例

dotnet publish -c Release -r debian-arm

Tip:

  1. 关于Build 更多命令,请参考docs.microsoft.com
  2. 关于运行时标识符的缩写(RID),请参考docs.microsoft.com
  3. RID 清单,请参考github.com

Dockerfile 如下

FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7
WORKDIR /app COPY . .
ENTRYPOINT ["dotnet", "xxx.dll"]

使用dotnet build 命令后,在输出文件夹内找到publish 文件夹,上传文件夹内容及Dockerfile到树莓派,然后准备生成镜像

docker build 命令如下

docker build -t <name>/<company>:<tag> .

注意命令中需要指定上下文位置,笔者使用的是相对位置"."

最后运行容器,即可看到效果

docker run -p 80:80 --name <container_name> -d <name>/<company>:<tag>

其他常用命令

删除虚悬镜像(dangling image)

docker image prune

4.参考链接

microsoft/dotnet

https://hub.docker.com/r/microsoft/dotnet/

arm32v7

https://hub.docker.com/u/arm32v7/

How to install .NET Core on Raspberry Pi

https://dotnetcorechris.github.io/dotnetcoreonraspberrypi.html

本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

在 树莓派(Raspberry PI) 中使用 Docker 运行 aspnetcore/dotnetcore 应用的更多相关文章

  1. 在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL

    在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL 本文主要利用 biarms 提供的 Dockerfile 进行安装. 笔者最新发现! MySQL 5.7 Docker ...

  2. 树莓派(Raspberry Pi)使用Shell编写的极简Service

    树莓派(Raspberry Pi)运行的系统是基于Debian的,不仅可以运行Shell,还支持systemd和docker,可以编写一个简单的服务,让其在启动时运行,执行一些自动化的操作.这里在Ra ...

  3. 用树莓派Raspberry Pi和Micro:bit做一个自拍器

    在这个项目中,我们将使用Python来构建一个由Micro:bit触发树莓派Raspberry Pi和相机模块的自拍器.这是开始使用硬件和简单文本编程的好方法. 我们将学习: 如何设置Raspberr ...

  4. 树莓派 Raspberry PI基础

    树莓派 Raspberry PI基础 官网网址:https://www.raspberrypi.org 下载地址:https://www.raspberrypi.org/downloads/ 官方系统 ...

  5. 树莓派(raspberry pi)学习4: 更改键盘布局(转)

    树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...

  6. Raspberry Pi中可用的Go IDE:liteide

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } Raspberry Pi中可用的Go IDE:liteide p { margin- ...

  7. 外网登录访问树莓派 Raspberry Pi

    外网登录访问树莓派 Raspberry Pi 本地的树莓派 Raspberry Pi,只能在局域网内访问,怎样从公网也能登录访问树莓派 Raspberry Pi? 本文将介绍具体的实现步骤. 1. 准 ...

  8. 树莓派raspberry pi配置

    (1)国际化语言 树莓派初装系统之后,首次启动会出现“raspi-config”工具,如下图:(若不是初次启动,在命令模式下,请输入 sudo raspi-config 命令,即可调出此界面.若在图形 ...

  9. 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...

随机推荐

  1. [apue] popen/pclose 疑点解惑

    问题请看这里: [apue] 使用 popen/pclose 的一点疑问 当时怀疑是pclose关闭了使用完成的管道,因此在pclose之前加一个足够长的sleep,再次观察进程文件列表: 哈哈,这下 ...

  2. POJ 3264:Balanced Lineup(RMQ模板题)

    http://poj.org/problem?id=3264 题意:给出n个数,还有q个询问,询问[l,r]区间里面最大值和最小值的差值. 思路:RMQ模板题,开两个数组维护最大值和最小值就行. #i ...

  3. mongo创建集合

    查询 db.getCollection('tbTrade').find({strDealSN:'P2P0_153596710bb00010011ba47b342'}); 更新(第一个{}为条件) db ...

  4. python 微信红包生成器

    #红包生成思路#200 块钱 10个红包#0-200 的一个轴,随机取9个点,分成10段, 每一段的值表示一个红包的大小 #把输入的 money值 * 100 拿到的数值就是分, 不用再考虑单位是元的 ...

  5. 使用字蛛教程以及遇到的bug

    前言: 前段时间刚完成一个外项目,歇了几天,老大让我看看公司的官网,优化一下,发现移动端的字体下载特别慢,才发现引用了字体包,一个字体包就达到了11M,想着既然有了图片压缩,那么应该有字体压缩,所以百 ...

  6. 分布式事务(3)---RocketMQ实现分布式事务原理

    分布式事务(3)-RocketMQ实现分布式事务原理 之前讲过有关分布式事务2PC.3PC.TCC的理论知识,博客地址: 1.分布式事务(1)---2PC和3PC原理 2.分布式事务(2)---TCC ...

  7. 解决Tomcat catalina.out 不断膨胀,导致磁盘占用过大的问题

    到服务器上看了一下任务中心的日志情况,膨胀的很快,必须采取措施限制其增长速度. 我们采用Cronlog组件对此进行日志切分,官网http://cronolog.org/一直未能打开,只能从其它地方寻找 ...

  8. [HNOI2011]数学作业 题解

    这道题看着挺难然而其实看破了也挺容易的.首先N极其的大,几乎要炸掉long long ,所以O(n)的算法一定是扑街了,身为一个脑残志坚的OIer,怎能不想到矩阵快速幂优化呢? 有趣的是这道题矩阵有很 ...

  9. 5.Ray-Handler之ToReadHandler编写

    如图右上角所示,Ray中有两类Handler(SubHandler和PartSubHandler),在使用中,SubHandler派生Actor的CoreHandler,PartSubHandler派 ...

  10. 【题解】长度为素数的路径个数-C++

    Description 对于正整数n (3≤n<20),可以画出n阶的回形矩阵.下面画出的分别是3阶的,4阶的和7阶的回形矩阵: 对于n阶回形矩阵,从左上角出发,每步可以向右或向下走一格,走2* ...