在 树莓派(Raspberry PI) 中使用 Docker 运行 aspnetcore/dotnetcore 应用
本文主要利用 Microsoft 提供的 Dockerfile 进行安装。
虽然Raspberry PI 3 CPU支持 armv8 指令集 ,但是在 docker info
还是识别为 “ armv7l”。所以安装镜像时一律选用 ARMv7 的镜像。
关于树莓派与 .NET Core 需要注意的地方
- .NET Core 2.0 支持 Arm32,提供运行时,但不提供SDK
- .NET Core 2.0 不支持 Pi Zero
- dotnet 社区对 PI 的使用指南 RaspberryPiInstructions
0.安装Docker
官方安装说明 :
Debian / Raspbian /Ubuntu
不在赘述。
1.准备 .NET Core Runtime 镜像
提供两种方法
前往Github 自行编译 Dockerfile
build 命令如下
docker build -t <name>/dotnet:2.0-runtime-stretch-arm32v7 .
使用 Docker Microsoft 官方的仓库(Repository)
pull 命令如下
docker pull microsoft/dotnet:2.0-runtime-stretch-arm32v7
提示:
- 以上生成的 Runtime 版本为 2.0.7 (2018/04/25)。
- 虽然官方说不支持提供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:
- 关于Build 更多命令,请参考docs.microsoft.com
- 关于运行时标识符的缩写(RID),请参考docs.microsoft.com
- 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 应用的更多相关文章
- 在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL
在 树莓派(Raspberry PI) 中使用 Docker 运行 MySQL 本文主要利用 biarms 提供的 Dockerfile 进行安装. 笔者最新发现! MySQL 5.7 Docker ...
- 树莓派(Raspberry Pi)使用Shell编写的极简Service
树莓派(Raspberry Pi)运行的系统是基于Debian的,不仅可以运行Shell,还支持systemd和docker,可以编写一个简单的服务,让其在启动时运行,执行一些自动化的操作.这里在Ra ...
- 用树莓派Raspberry Pi和Micro:bit做一个自拍器
在这个项目中,我们将使用Python来构建一个由Micro:bit触发树莓派Raspberry Pi和相机模块的自拍器.这是开始使用硬件和简单文本编程的好方法. 我们将学习: 如何设置Raspberr ...
- 树莓派 Raspberry PI基础
树莓派 Raspberry PI基础 官网网址:https://www.raspberrypi.org 下载地址:https://www.raspberrypi.org/downloads/ 官方系统 ...
- 树莓派(raspberry pi)学习4: 更改键盘布局(转)
树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...
- Raspberry Pi中可用的Go IDE:liteide
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } Raspberry Pi中可用的Go IDE:liteide p { margin- ...
- 外网登录访问树莓派 Raspberry Pi
外网登录访问树莓派 Raspberry Pi 本地的树莓派 Raspberry Pi,只能在局域网内访问,怎样从公网也能登录访问树莓派 Raspberry Pi? 本文将介绍具体的实现步骤. 1. 准 ...
- 树莓派raspberry pi配置
(1)国际化语言 树莓派初装系统之后,首次启动会出现“raspi-config”工具,如下图:(若不是初次启动,在命令模式下,请输入 sudo raspi-config 命令,即可调出此界面.若在图形 ...
- 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)
将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...
随机推荐
- sql语句一些简单的用法
- HBase Region重点剖析
Region的概念 Region是HBase数据管理的基本单位.数据的move,数据的balance,数据的split,都是按照region来进行操作的. region中存储这用户的真实数据,而为了管 ...
- Docker-Compose搭建单体SkyWalking
SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下, ...
- scrapy基础知识之 CrawlSpiders(爬取腾讯校内招聘):
import scrapyfrom scrapy.spider import CrawlSpider,Rulefrom scrapy.linkextractors import LinkExtract ...
- C++学习书籍推荐《C++编程思想第二版第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 “经典原版书库”是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广 ...
- 探寻 webpack_bundle_analyzer 原理
webpack_bundle_analyzer 是什么? 这是webpack官方出品的,对项目中模块依赖关系及体积的分析插件,其界面如下: 问题来了,这是如何来进行统计的? 这里提供一个插件的代码,可 ...
- springcloud-高可用部署
1.场景描述 前端时间只简单介绍了下springcloud的高可用方案(springcloud高可用方案),今天详细介绍下如何实施springcloud的高可用部署. 2.解决方案 2.1 架构方案 ...
- c++小游戏:洛谷彩票
#include <cstdlib> #include <iostream> #include <cstdio> #include <cmath> #i ...
- Atlassian In Action-Jira之核心插件(三)
目录 BigPicture BigPicture特点介绍 管理员管理菜单 任务列表 任务管理 设置 最佳实践 Jira Misc Workflow Extensions 最佳实践 自动分配 自动化流程 ...
- string的赋值
string的赋值 string s1="123456"; 一: 只能在刚开始定义的时候用: (1) 从后往前赋值 string s2(s1,3); ...