跨平台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(映射端口)
posted @ 2023-01-27 22:00  弗里德里希恩格hao  阅读(122)  评论(0编辑  收藏  举报