跨平台Docker篇
前言
总结自 老张的哲学b站视频【10分钟学会Blog.Core(ASP.NETCORE)基本完结】https://www.bilibili.com/video/BV1vC4y1p7Za?vd_source=3995da6daa798de472bb2ad50abb0a97
[跨平台系列三Docker篇]:ASP.NET Core应用
三部曲:1.docker 2.CI/CD 3.K8s
1、服务器与工具准备
1.1 虚拟机、镜像、终端工具安装
Centos镜像
VMware虚拟机及密钥 -> 提取码:9hnf
安装教程
MobaXterm
本次所用到的工具主要有:
1、git:提供源代码管理;
2、docker:容器服务;
3、dotnetcore:SDK环境;
4、nginx:服务器代理;
2、安装辅助工具
1、更新系统 [可选]
更新包或依赖至最新(非必须)
sudo yum update
2、安装git [可选]
我们如果要构建镜像的话,肯定需要发布好的问题+Dockerfile,那发布有三种方式:
第一种就是本地发布,拷贝到服务器,build 镜像;
第二种是本地发布,然后本地build,推到仓库里,服务器拉取;
第三种就是服务器PULL代码,然后服务器发布,再build;
本文采用第三种
sudo yum -y install git
git --version
3、安装Nginx [必要]
我们创建好的容器run后,Docker会自己守护这个进程,但是还是需要一个服务器来做代理和反向代理,一般常用的就是Nginx了:
yum install -y pcre pcre-devel #PCRE pcre-devel 安装,可选
yum install -y zlib zlib-devel #zlib 安装
yum install -y openssl openssl-devel
# OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
# nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz # 可安装其他新版本nginx
tar -zxvf nginx-1.12.0.tar.gz # 解压
cd nginx-1.12.0 # 进入目录
./configure # 使用默认配置
#编译安装
make
make install
#查找安装路径
whereis nginx
#启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
#设置开机自启动
vi /etc/rc.local
/usr/local/nginx/sbin/nginx #增加此行
#设置执行权限
chmod 755 rc.local
注意,nginx如果想window下正常访问 需开放服务端口
4、安装Dotnet SDK [核心]
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-6.0 #指定sdk版本
#遇到选择 选择是即y
#安装成功,测试一下版本:
dotnet --list-sdks
3、安装Docker环境
1、安装Docker源
sudo yum remove docker-ce
Step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Step 3: 更新并安装Docker-CE
sudo yum makecache fast (可选)
sudo yum -y install docker-ce
Step 4: 开启Docker服务
sudo service docker start
设置docker开机启动
systemctl enable docker
启动docker
systemctl start docker
查看版本
docker --version
指令
docker images #查看镜像
docker ps -a #查看有哪些容器
4、发布自己的镜像
VS打开项目 ,选择项目鼠标右键点击 ‘添加’ -- docker支持-- 选择linux --会生成Dockerfile
精简版:
FROM swr.cn-south-1.myhuaweicloud.com/mcr/aspnet:3.1-alpine
WORKDIR /app
COPY . .
EXPOSE 8081
ENTRYPOINT ["dotnet", "Blog.Core.dll","-b","0.0.0.0"]
简介一下:
FROM:意思是我们的项目源镜像是哪个;
WORKDIR:镜像的工作目录;
COPY:复制文件(将Dockerfile所在目录下文件复制到镜像中的工作目录中)
EXPOSE:容器要开放的端口(我们用.NETCORE的8081端口)
ENTRYPOINT:为容器启动后要执行的命令 (这里将执行dotnet Blog.Core.dll命令)
选择Dockerfile属性;始终复制
将项目发布、拷贝至虚拟机:此步骤不做赘述
虚拟机终端
dotnet Blog.Core.Api.dll #检查项目是否运行正常
docker build -t walterimg . #创建镜像,注意小写 和 符号 '.'
docker images #查看镜像是否创建ok

生成容器
docker run -p 1001:9291 walter #生成容器:第一个端口1001-指的是映射端口 第二个端口是宿主服务端口

docker ps -a #查看所有运行的容器
docker start 容器Id #运行指定容器


nginx 部署注意点
1.配置nginx配置文件添加:
2.开启指定端口 如:80、90、9001(映射端口)
跨平台Docker篇的更多相关文章
- [徐培成系列实战课程]docker篇
[徐培成系列实战课程]docker篇 如何利用docker快速构建Spark独立模式的集群 1.介绍 利用docker容器技术快速构建跨节点的独立模型的Spark大数据集群.Spark是时下非常热门的 ...
- DotNet跨平台 - docker部署.net core2.0项目
参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...
- 简明教程 | Docker篇 · 其一:基础入门
了解Docker Docker是什么 Docker是指容器化技术,用于支持创建和使用 Linux 容器,同时Docker也是软件容器平台. 什么是容器(container) 容器是主机上与其他进程隔离 ...
- linux ---docker篇
Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...
- Java面试基础 -- Docker篇
1.什么是Docker? Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. 2.什么是Docker镜像? Docker镜像是 ...
- 简明教程 | Docker篇 · 其二:Dockerfile的编写
Dockerfile是什么 一个包含用于组合 image 的命令的文本文件,docker 通过 dockerfile 和构建环境的上下文来构建 image . 编写Dockerfile FROM 首先 ...
- dotnet跨平台 - 使用Nginx+Docker Compose运行.NETCore项目
参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...
- CentOS7安装Docker与使用篇
一.在CentOS7上安装Docker篇 1. 查看系统版本: $ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 2. 安装 ...
- 50篇经典珍藏 | Docker、Mesos、微服务、云原生技术干货
概念篇 全方位探(tian)索(keng)Mesos各种存储处理方式 老肖有话说@Mesos User Group第四次约会 技术实践 | Mesos 全方位“烹饪”指南 回顾 JAVA 发展轨迹,看 ...
- Docker构建Python Web环境
出于寻找Docker对Python相关项目部署的学习,找到腾讯课堂NEXT公开课中[Docker构建Python Web环境]的课程,本文对其进行内容梳理及知识点汇总. 该课程总计6小时左右,是个适合 ...
随机推荐
- Quartz.Net源码Example之Quartz.Examples.AspNetCore
Quartz.Examples.AspNetCore .NetCore的Web系统,后台主要执行多个触发器任务,前台展示所有触发器信息和正在执行的作业的相关信息,还可以通过访问health-UI来 ...
- LeetCode_单周赛_329
2544. 交替数字和 代码1 转成字符串,逐个判断 class Solution { public int alternateDigitSum(int n) { char[] s = (" ...
- 大三末java实习生一面凉经
在南京投了一些小公司,想找个实习,因为知道自己很菜,就收到了一家公司的面试. 面试一般在线上进行,我是在腾讯会议上进行的.面试官其实挺好的,一般不会为难你,因为他知道你是在校生不会懂那么多企业的技术. ...
- 使用java.util.Timer实现定时任务,详解Thread.sleep() in a loop, probably busy-waiting问题
很多时候,我们需要定时任务实现一些诸如刷新,心跳,保活等功能.这些定时任务往往逻辑很简单,使用定时任务的框架(例如springboot @Scheduled)往往大材小用. 下面是一个定时任务的典型写 ...
- Cesium CallbackProperty(十五)
Cesium中的entities可以随时间变化长度高度,主要依赖于CallbackProperty函数. 因为使用CallbackProperty,cesium中一切可视化的要素都可以与时间联系起来. ...
- Art of Illusion 一款**的开源 3D 建模和渲染软件
原文地址:https://www.mvrlink.com/artofillusion/ Art of Illusion 是一个免费的开源 3D 建模和渲染工作室.它的许多功能可与商业程序中的功能相媲美 ...
- PostgreSQL cache lookup failed for type XXXX 错误
一.错误信息 执行 pg_dump 命令备份,提示 cache lookup failed for type- 错误. 二.错误分析 根据上面日志中的提示信息,可以确定 222222 这个 ID 号, ...
- 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...
- Camera | 5.Linux v4l2架构(基于rk3568)
上一篇我们讲解了如何编写基于V4L2的应用程序编写,本文主要讲解内核中V4L2架构,以及一些最重要的结构体.注册函数. 厂家在实现自己的摄像头控制器驱动时,总体上都遵循这个架构来实现,但是不同厂家.不 ...
- Linux如何查看实时滚动日志
Linux有多种方法可以查看实时滚动日志.最常用的方法是使用tail命令,它可以显示一个文件的最后几行,并且可以跟踪文件的变化.例如,你可以输入tail -f /var/log/syslog来查看系统 ...
