树莓派中Docker部署.Net Core 3.1 (一)
一、背景
受疫情影响,已经在家强制事假一个月了,除了刷简历外就是在家学习,闲来无事,最近买了几个树莓派4B的板子回来,准备用树莓派搭建个自动部署的平台和微服务示例,长话短说,节约时间,直接进入正题吧
二、树莓派系统安装
一开始我是在华为云下的centos,后来发现各种问题(无法连接5Gwifi等),毕竟树莓派是arm的cpu,很多东西不没法下,网上找了找,发现Debian-Pi-Aarch64这款系统不错,于是就下载了,有需要的自行下载,地址是:https://gitee.com/openfans-community/Debian-Pi-Aarch64/blob/master/README_zh.md
我选择的是:基础系统Plus++(无桌面加强版)

每个版本支持什么请看上图,系统下载好后,烧卡和写入sd卡这一步就不说了,不清楚如何烧卡写sd卡的请自行百度,写完卡后记得在boot盘符里创建一个空的ssh文件,不带后缀,然后找到wpa_supplicant.conf ,自行去掉注释,然后修改成你的wifi密码。
做完上面的步骤后,将卡插入树莓派,通电启动等待一分钟左右吧,第一次使用系统会自动重启三次,反正我没管,就放那等了一分钟左右的样子,然后通过pc直接ssh连接过去了。
系统默认账户:pi ,默认密码:raspberry,默认账户pi账户支持ssh登录,root账户密码请登陆后使用命令 “sudo passwd root” 执行设置密码,同时可以修改pi的默认密码,或使用命令 “sudo -i” 来切换到root用户。接着开启Web可视化管理界面、Docker服务、和CecOS CaaS 容器云管理平台 登录界面
Docker容器
手动开启:systemctl start docker.service
手动停止:systemctl stop docker.service
启用开机启动:systemctl enable docker.service
禁用开机启动:systemctl disable docker.service
CecOS CaaS容器云(服务端口:8443)
手动开启:systemctl start cecos-caas.service
手动停止:systemctl stop cecos-caas.service
启用开机启动:systemctl enable cecos-caas.service
禁用开机启动:systemctl disable cecos-caas.service
WebGUI管理平台(服务端口:9090)
手动开启:systemctl start cockpit.socket
手动停止:systemctl stop cockpit.socket
启用开机启动:systemctl enable cockpit.socket
禁用开机启动:systemctl disable cockpit.socket
Web SSH客户端(服务端口:4200)
手动开启:systemctl start shellinabox.service
手动停止:systemctl stop shellinabox.service
启用开机启动:systemctl enable shellinabox.service
禁用开机启动:systemctl disable shellinabox.service
注意:要启用CecOS CaaS容器云服务,必须要先启用和启动docker服务!!
因为启动了WebGUI管理平台(服务端口:9090),所以个人认为没必要在启动Web SSH客户端(服务端口:4200)了
相关账号密码
1.Web可视化管理界面
登录地址 https://你树莓派的IP地址:9090
说明:请使用系统默认账户pi登录
2.CecOS CaaS 容器云管理平台 登录界面
登录地址 https://你树莓派的IP地址:8443
说明:默认管理账户 admin , 默认密码:password 。请登录后立即修改默认密码!!
特别注意CecOS CaaS 容器云管理平台的默认管理账户 admin , 默认密码:password 。请登录后立即修改默认密码!
基本上这一步系统已经配置完成。
三、部署gitlab、Jenkins、Consul
由于树莓派是arm的cpu,所以如果你想找需要的docker镜像的话可以在 https://hub.docker.com/ 中查找,不过记得在Architectures中勾选ARM和ARM64,这样查出来的镜像文件即为ARM的镜像了,千万别下载x86的了,不然运行起来会报如下错误:
[91mstandard_init_linux.go:211: exec user process caused "exec format error"
先下ARM64为的gitlab,这里我选择的是ulm0/gitlab(搜索的时候记得勾选“ARM” 和“ARM64”)

点击进入详情,在左边有docker下载镜像的命令
docker pull ulm0/gitlab
docker 镜像下载好后,我是直接使用命令进行安装的,命令如下:
::安装gitlab
docker run -d \
--hostname gitlab \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.31.4/'; gitlab_rails['lfs_enabled'] = true;" \
-p 9443:443 -p 8081:8081 -p 220:220 \
--name gitlab \
--restart always \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
ulm0/gitlab
这里的 192.168.31.4 IP是树莓派宿主机的IP,就是你安装好树莓派系统后的ip地址,替换成你自己的IP即可,然后我将将gitlab的443、80和20端口都修改了,其中80和20端口的修改相对较麻烦,先使用命令查看目前的docker容器id
docker ps -a

然后使用docker exec -it c47cf283915f bash进入到gitlab容器,进入容器后cd进入到/etc/gitlab,cd /etc/gitlab,然后vi gitlab.rb,然后按i,进入到编辑模式,修改如下几处:
修改gitlab.rb
路径: /opt/gitlab/etc/gitlab.rb,这个文件用于gitlab如何调用80和8080的服务等。
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.31.4:8081' ##192.168.31.4 IP为树莓派宿主IP,自行修改自己IP
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
# external_url 'GENERATED_EXTERNAL_URL'
################################################################################
################################################################################
## Configuration Settings for GitLab CE and EE ##
################################################################################
################################################################################
################################################################################
## gitlab.yml configuration
##! Docs: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/gitlab.yml.md
################################################################################
gitlab_rails['gitlab_ssh_host'] = '192.168.31.4'
# gitlab_rails['gitlab_ssh_user'] = ''
# gitlab_rails['time_zone'] = 'UTC'
### Wait for file system to be mounted
###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#only-start-omnibus-gitlab-services-after-a-given-filesystem-is-mounted
# high_availability['mountpoint'] = ["/var/opt/gitlab/git-data", "/var/opt/gitlab/gitlab-rails/shared"]
### GitLab Shell settings for GitLab
gitlab_rails['gitlab_shell_ssh_port'] = 220
# gitlab_rails['gitlab_shell_git_timeout'] = 800
设置gitlab的发送邮箱
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "发送邮件@qq.com"
gitlab_rails['smtp_password'] = "发送邮件密码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "发送邮件@qq.com"
###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
修改gitlab 下的nginx
路径: /var/opt/gitlab/nginx/conf/gitlab-http.conf,这个文件是gitlab内置的nginx的配置文件,里面可以影响到nginx真实监听端口号。
###################################
## configuration ##
###################################
server {
listen *:8081; ##这里默认是80
server_name 192.168.31.4; ##这里用树莓派宿主的IP
## 其他的配置不变
## ....
## ....
## 其他的配置不变
if ($http_host = "") {
set $http_host_with_default "192.168.31.4:8081"; ## IP设置为树莓派宿主IP
}
修改gitlab后,运行gitlab-ctl reconfigure 使其修改后的配置生效。
最后等待几分钟后,局域网内用另一台电脑访问 http://192.168.31.4:8081/ 即可访问

树莓派中Docker部署.Net Core 3.1 (一)的更多相关文章
- Docker 部署Dotnet Core MVC项目
原文:Docker 部署Dotnet Core MVC项目 1.dotnet core创建项目 dotnet new mvc -o myweb cd myweb 然后就是业务代码的编辑,增删改查乱七八 ...
- 三分钟学会使用Docker部署.NET Core
大概快有一年的时间没有碰过docker了,理由很简单,基本上都是在IIS上部署,看到很多大佬都开始Devops持续化集成了,但相对来说成本会更高,但对于大型团队来说还是不错的,这不?不想被大伙甩下,哈 ...
- 树莓派使用Docker部署EdgeX(jakarta版本)
使用Docker部署EdgeX 老师安排我搞边缘计算,搞了很久都没能明白边缘计算是什么,甚至对其兴趣不大,前一阵弄好了lorawan网关,该做网关内部的边缘计算了,发现自己已经慢慢地学了进去,总是想要 ...
- Ubuntu-Docker[1]安装Docker,通过Docker部署net core代码,需要结合[.NET Core 18]发布、ASP.NET Core Docker部署
1)通过系统自带包安装 通过自带包安装,可能Docker版本较旧 $ sudo apt-get update Reading package lists... Done $ sudo apt-get ...
- Linux服务器使用Docker部署.net Core项目
发布ASP.NET Core项目 和普通的项目发布一样,将项目发布到目标文件夹中 构建Dockerfile文件 在目标文件根目录新建Dockerfile文件(没有后缀) FROM microsoft/ ...
- 生产环境中CentOS7部署NET Core应用程序
NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...
- 使用docker部署.net core应用
CentOS 使用VS2017新建一个asp.net core项目 发布web应用程序 使用FTP工具,将程序文件copy到linux上 XShell连上linux并登陆 cd /CoreWebDem ...
- Linux上用Docker部署Net Core项目
前提:本地配置好Docker环境1.构建Net Core镜像 docker pull microsoft/dotnet 2.新建一个DockerFile文件并填充内容 #基于 `microsoft/d ...
- Windows10应用Docker部署DoNet Core
Win10和Mac稳定版的Docker发布了,之前看了下徐磊老师的几篇Docker4Dotnet的文章http://devopshub.cn/2016/07/08/docker4dotnet-1-ov ...
随机推荐
- Tomcat8优化
一.Tomcat8优化 Tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对Tomcat的优化也变得非常重要了. 对于Tomcat的优化,主要是从2个方面入手,一是,Tomcat自身的 ...
- python打包py为exe程序:PyInstaller
打包库:PyInstaller python程序编写过程中的脚本文件为py格式的文件,当我们想将编写好的程序移植到其他机器上给其他人使用时,如果目标机器没有安装python环境,py文件将无法运行,而 ...
- 再说scss
1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...
- Spring注解 - 生命周期、属性赋值、自动装配
一.Bean的生命周期 流程 Bean创建 -- 初始化 -- 销毁 创建: 单实例:在容器启动时创建对象 多实例:每次调用时创建对象 初始化: 都是在对象创建完成后,调用初始化方法 销毁: 单实例: ...
- 机器学习 - LSTM应用之情感分析
1. 概述 在情感分析的应用领域,例如判断某一句话是positive或者是negative的案例中,咱们可以通过传统的standard neuro network来作为解决方案,但是传统的神经网络在应 ...
- JS中的call()方法和apply()方法用法总结(挺好 转载下)
最近又遇到了JacvaScript中的call()方法和apply()方法,而在某些时候这两个方法还确实是十分重要的,那么就让我总结这两个方法的使用和区别吧. 1. 每个函数都包含两个非继承而来的方法 ...
- python中那些让开发事半功倍的模块
1. Map Map会将一个函数映射到一个输入列表的所有元素上 ex: 有一个列表: [1,2,3,4,5,6], 现在要求把列表每个元素乘以10 如果你还不知道Map,那你可能会这样做: list1 ...
- Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)
Airport Simulation 是数据结构与算法教材中用于演示Queue的一个小程序(大多数教师似乎会跳过这个练习).主程序会通过输入总的运行时间.队列里可以等待的最多飞机数量,平均每个时间单元 ...
- 一文带你熟悉SpringIOC
Spring的IOC: IOC是Spring的一个核心组件,理解IOC是迈向Spring大门的重要一步 现实生活中,我们写字用的笔会有多种颜色,为了做不同的标记,需要用不同颜色的笔.如果只是使用一两种 ...
- GitLab → 搭建私有的版本控制的托管服务平台
开心一刻 睡着正香,媳妇用力把我晃醒说:“快起来,我爸来了.” 我一下醒了,手脚熟练的把衣服一抱,滚到床底,顺便把鞋也收了进去 媳妇蹲下无奈的说:“快出来!咱俩都结婚半年了.” 我:“对哦,搞习惯了” ...